【发布时间】:2012-03-24 14:37:46
【问题描述】:
我一直在尝试在其他活动中使用/保存复选框的布尔值,但运气不佳。
我知道您必须使用 SharedPreferences 但我无法正确设置它。我做了一个偏好类,它有
private static final String OPTION_PREF = "my.main.project";
private SharedPreferences optionPreferences;
private Editor optionEditor;
private boolean checkbox;
public Preferences(Context context)
{
this.optionPreferences = context.getSharedPreferences(OPTION_PREF, Activity.MODE_PRIVATE);
this.optionEditor = optionPreferences.edit();
}
public boolean getChecked()
{
return optionPreferences.getBoolean("is_checked", checkbox);
}
public void saveChecked(boolean checkBox)
{
optionEditor.putBoolean("save_check_pref", checkBox);
optionEditor.commit();
}
然后在例如选项菜单中,
boolean veggieChecked;
super.onCreate(savedInstanceState);
setContentView(R.layout.options);
Preferences pref;
pref = new Preferences(getApplicationContext());
veggieChecked = pref.getChecked();
final CheckBox checkBox = (CheckBox) findViewById(R.id.vegetarian);
if(checkBox.isChecked())
veggieChecked = true;
pref.saveChecked(veggieChecked);
我真的看不出我做错了什么,因为我是 Android 新手,之前没有使用过 sharedpreferences.. 任何帮助将不胜感激!
【问题讨论】:
-
如果要使用
SharedPreferences,需要在选项菜单中再次调用Context.getSharedPreferencs(),然后再调用get(),而不是checkbox.isChecked()。
标签: android checkbox sharedpreferences android-preferences