2013-03-29 63 views
0

嗨,我已經在列表視圖中創建基礎適配器。我已經實現了自定義複選框。我們需要什麼意思是說,如果我點擊了多個項目保存在共享preference.if我有unchecked意味着刪除該項目在該共享preferences.Please給我方案。複選框值在android中保存共享首選項?

這裏我提一下下面這段代碼:

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)); 

    } 

} 
}); 

回答

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); 
} 

如果位置始終是複選框,則這個只會工作,如果是不同的,你應該尋找其他的方法來確定點擊了哪個複選框

+0

如何保存字符串MP23 – Gomathi

+0

你一定要閱讀有關SharedPreferences http://developer.android.com/reference/android/content/SharedPreferences.Editor.html在那裏你可以看到你可以存儲所有的基本類型,並adittionaly字符串集。所以,而不是putBoolean只是使用putString,而不是getBoolean - getString – MP23