首页 > 技术文章 > 将字符串数组作为数据源以列表方式显示在对话框中

dazuihou 2014-03-17 09:15 原文

一、使用AlertDialog,在不使用外部布局的情况下在对话框中显示一个列表(列表项只包含一行文字,数据源是String[]类型的值),并响应每一个列表项的单击事件

  使用AlertDialog.Builder.setItems方法可以将一个String数组以列表形式显示在对话框中,代码:

 1 final String provinces[]=new String[]{
 2             "辽宁省"," 山东省"," 河北省"," 福建省"," 广东省", "黑龙江省"," 浙江省","吉林省"    
 3         };
 4         final AlertDialog.Builder builder=new AlertDialog.Builder(this);
 5         builder.setTitle("选择省份");
 6         builder.setItems(provinces, new OnClickListener(){
 7             @Override
 8             public void onClick(DialogInterface dialog, int which) {
 9                 builder.setMessage("您选择了:"+which+":"+provinces[which]).show();
10             }
11             
12         });
13         builder.create().show();

  效果如下图:

 

二、将字符串数组作为数据源列表方式显示在标准对话框中,并在列表项后面显示选项按钮

  使用AlertDialog.Builder.setSingleChoiceItems方法不仅可以在对话框上显示列表,还可以在列表项后面显示选项按钮。代码:

 1 final String provinces[]=new String[]{//定义将要显示在列表项中的字符串数组
 2             "辽宁省"," 山东省"," 河北省"," 福建省"," 广东省", "黑龙江省"," 浙江省","吉林省"    
 3         };
 4         final AlertDialog.Builder builder=new AlertDialog.Builder(this);
 5         builder.setTitle("选择省份");
 6         builder.setSingleChoiceItems(provinces, -1, new OnClickListener(){
 7             //-1对应的参数规定了哪一个选项默认被选中,-1表示默认没有选项被中
 8             @Override
 9             public void onClick(DialogInterface dialog, int which) {
10                 builder.setMessage("您已选择了:"+which+":"+provinces[which]).show();
11             }
12         });
13         //对话框的关闭按钮
14         builder.setPositiveButton("关闭", new OnClickListener(){
15 
16             @Override
17             public void onClick(DialogInterface dialog, int which) {
18                 dialog.dismiss();
19             }
20             
21         });
22         builder.create().show();

  效果图如下:

  

推荐阅读