0

嗨,我已经在列表视图中创建了基本适配器。我已经实现了自定义复选框。如果我单击了保存在共享首选项中的多个项目,我们需要什么。如果我未选中意味着删除该共享首选项中的项目。请给我解决方案。

在这里,我在此代码下面提到:

holder.checkBox.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
    if (((CheckBox) v).isChecked()) {

        if (checkBoxState[position] = true) {
            // Calculate function
            chk = Integer.toString(v.getId());
            total += Double.valueOf(category.arrListPrice
                    .get(position));
            System.out.println("********************Checked"
                    + total);
            checkboxvalue.add(chk);
            adapter_list.notifyDataSetChanged();
        }

    } else {

        if (checkBoxState[position] = false) {
            System.out.println("*********************unchecked"
                    + total);
            total -= Double.valueOf(category.arrListPrice
                    .get(position));
            checkboxvalue.remove(chk);
            adapter_list.notifyDataSetChanged();
        }

    }

    if (listener != null) {
        Log.e("Callback", Double.toString(total));
        listener.totalAmount(Double.toString(total));

    }

}
});
4

1 回答 1

0
public void saveCheckBox(position int, boolean isChecked){
   SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();
   SharedPreferences.Editor editor = prefs.edit();

    editor.putBoolean("checkbox_"+position,isChecked);
    editor.commit();
 }


  public boolean getCheckBoxState(int position){
  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();
  prefs.getBoolean("checkbox_"+position, false);
 }

仅当复选框的位置始终相同时,这才有效,如果位置不同,您应该找到其他方法来确定单击了哪个复选框

于 2013-03-29T14:06:51.573 回答