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 に答える