Androidx学习笔记(27)--- 多选对话框

来源:互联网 发布:linux caffe 编辑:程序博客网 时间:2024/05/12 03:40

多选对话框

    AlertDialog.Builder builder = new Builder(this);    builder.setTitle("请选择你认为最帅的人");
  • 定义多选的选项,因为可以多选,所以需要一个boolean数组来记录哪些选项被选了

final String[] items = new String[]{        "赵帅哥",        "赵师哥",        "赵老师",        "侃哥"};//true表示对应位置的选项被选了final boolean[] checkedItems = new boolean[]{        true,        false,        false,        false,};builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {    //点击某个选项,如果该选项之前没被选择,那么此时isChecked的值为true    @Override    public void onClick(DialogInterface dialog, int which, boolean isChecked) {        checkedItems[which] = isChecked;    }});builder.setPositiveButton("确定", new OnClickListener() {    @Override    public void onClick(DialogInterface dialog, int which) {        StringBuffer sb = new StringBuffer();        for(int i = 0;i < items.length; i++){            sb.append(checkedItems[i] ? items[i] + " " : "");        }        Toast.makeText(MainActivity.this, sb.toString(), 0).show();    }});builder.show()


参考代码

public void click3(View v){AlertDialog.Builder builder = new Builder(this);builder.setTitle("请选择您觉得帅的人");final String[] items = new String[]{"侃哥","赵帅哥","赵老师","赵师兄"};final boolean[] checkedItems = new boolean[]{true,true,false,false};builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {//which:用户点击的条目的下标//isChecked:用户是选中该条目还是取消该条目@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checkedItems[which] = isChecked;}});//设置一个确定按钮builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String text = "";for(int i = 0; i < 4; i++){text += checkedItems[i]? items[i] + "," : "";}Toast.makeText(MainActivity.this, text, 0).show();dialog.dismiss();}});builder.show();}



0 0