效果图是这个样子,
用过dialog实现的效果
主要使用 AlertDialog.Builder的setMultiChoiceItems
下边上代码,先声明一个集合
String[] favorites=new String[]{"a","b","c","d"};
这就是多选框中的数据
然后生命一个list数组
List<Integer>list=new ArrayList<>();
剩下的代码
//多选对话框
btnAihao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tvShow.setText("");
//创建Builder对象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//设置相应属性
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择爱好");
//第一个参数:显示的列表项
//第二个参数:默认选中状态
//第三个参数: 监听每一项的check
builder.setMultiChoiceItems(favorites, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
//which 0-3
//isChecked 是否被选中 true false
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
list.add(which);
}else {
list.add(which);
}
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//遍历list
for(Integer index : list){
tvShow.append(favorites[index]+",");
}
list.clear();
}
});
builder.setNegativeButton("取消",null);
//创建AlertDialog对象
AlertDialog dialog=builder.create();
//显示对话框
dialog.show();
}
});