[英]Checkboxes become unchecked in Dialog when scrolling
我正在使用AlertDialog.Builder.setMultiChoiceItems
显示带有文本的复选框。 我可以成功显示选中的项目,但是每当我上下滚动它时,其中的一些就会被随机取消选中。 下面是我的代码。
我该怎么做才能解决此问题? 任何帮助表示赞赏!
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setMultiChoiceItems(items, selectedItems,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
selected[which] = isChecked;
}
})
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
})
.setNegativeButton(R.string.preklici, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
});
我认为您正在实现列表视图项中的复选框,以便可以通过此答案。 https://stackoverflow.com/a/10896140/6869491希望它会有所帮助
您需要处理代码中复选框的检查状态。 创建已选择项目的列表
因此,创建ArrayList<Integer> selList=new ArrayList();
然后在您的setMultiChoiceItems
执行以下操作-
.setMultiChoiceItems(items, selectedItems,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
// If user select a item then add it in selected items
selectedItems.add(which);
multichoiceDialog.getListView().setItemChecked(which, isChecked);// You can tell the dialog to update its state here.
}
}
请注意,我只显示了代码的一部分,因此仅使用setMultiChoiceItems
方法中的内容。 否则,您可能需要自己照顾大括号:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.