对话框中的列表视图

26

我在AlertDialog中使用ListView来显示一系列的项目。当用户点击其中一个项目时,我想让对话框关闭。在对话框上我没有任何动作按钮。你有什么好的办法可以实现这个功能吗?


您还可以在此处查看带有列表视图的警报对话框示例 演示示例 - Herry
3个回答

92

你应该能够做类似于这样的事情:

final CharSequence[] items = {"Foo", "Bar", "Baz"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Make your selection");
builder.setItems(items, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {
         // Do something with the selection
    }
});
AlertDialog alert = builder.create();
alert.show();

这个页面展示了不同类型的对话框的一些其他示例。


5
只需在public void onClick()函数中加入dismiss(),就可以帮助您关闭对话框。 - Yenchi

0
使用以下代码在AlertDialog中显示自定义列表:
AlertDialog.Builder builderSingle = new AlertDialog.Builder(
                    DialogActivity.this);
            builderSingle.setIcon(R.drawable.ic_launcher);
            builderSingle.setTitle("Select One Name:-");
            final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                    DialogActivity.this,
                    android.R.layout.select_dialog_singlechoice);
            arrayAdapter.add("Hardik");
            arrayAdapter.add("Archit");
            arrayAdapter.add("Jignesh");
            arrayAdapter.add("Umang");
            arrayAdapter.add("Gatti");
            builderSingle.setNegativeButton("cancel",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });

            builderSingle.setAdapter(arrayAdapter,
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            String strName = arrayAdapter.getItem(which);
                            AlertDialog.Builder builderInner = new AlertDialog.Builder(
                                    DialogActivity.this);
                            builderInner.setMessage(strName);
                            builderInner.setTitle("Your Selected Item is");
                            builderInner.setPositiveButton("Ok",
                                    new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(
                                                DialogInterface dialog,
                                                int which) {
                                            dialog.dismiss();
                                        }
                                    });
                            builderInner.show();
                        }
                    });
            builderSingle.create();
            builderSingle.show();

0

在弹出警告对话框时,您可以使用布局。我认为这样更容易进行样式设置。 对于警告对话框中的列表,您可以尝试类似于this的操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接