2010-03-07 69 views
26

我在AlertDialog中使用ListView来显示项目列表。当用户点击其中一个项目时,我想关闭对话框。我不会在对话框上有任何操作按钮。任何想法如何我会做到这一点?AlertDialog中的ListView

+0

您还可以看到该样品警告对话框与列表视图去这里[用于演示的例子( http://goo.gl/W3a4h) – Herry 2011-12-06 19:18:43

回答

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(); 

page有不同类型的对话框中其他一些例子。

+5

只需在public void onClick()函数中放置dismiss()就可以关闭对话框。 – Yenchi 2010-06-23 19:04:46

+0

拯救我的一天,谢谢.... – Cabezas 2016-04-01 18:27:49

0

您可以在弹出警告对话框时使用布局。以这种方式设置样式会更容易。 对于警报对话框列表,你可以这样做this

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();