[英]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.