一、使用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();
效果图如下: