清单不会保持检查状态

时间:2014-03-12 16:26:30

标签: android checkbox

我的核对清单有问题。当用户检查其中一个项目并验证时,检查的项目不会被存储。每次打开新对话框时,都会重置清单。

我如何存储它们?

这是我的代码:

else if(position == 1){
final ArrayList<Integer> mSelectedItems = new ArrayList<Integer>();
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Titre")
       .setMultiChoiceItems(R.array.liste_choix, null,
               new DialogInterface.OnMultiChoiceClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which,
                       boolean isChecked) {
                   if (isChecked) {
                       mSelectedItems.add(which);
                   } else if (mSelectedItems.contains(which)) {
                       mSelectedItems.remove(Integer.valueOf(which));
                   }
               }
       })
       .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int id) {
                   // User clicked OK, so save the mSelectedItems results somewhere
                   // or return them to the component that opened the dialog
               }
           })
       .setNegativeButton(R.string.annuler, new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int id) {
               }
           });

builder.show();

}

1 个答案:

答案 0 :(得分:0)

我认为这与mSelectedItems有关。因为上面的所有内容都是在条件之后发生的,所以看起来好像这都是在一个方法中发生的。当您每次进入条件的这一部分时创建新的mSelectedItems实例,每次启动时列表都将为空。我建议你做的是:

(1)实际上使mSelectedItems成为成员或实例变量,如果这是你的意图,这样每次你到达代码的那一部分都不会重新创建

(2)然后你要做的就是检查上次切换方框时选择了哪些方框,就像在this post中一样。