在我的应用程序中,我只有一个基本设置,使用复选框,我希望它可以像扩展偏好活动时的首选项一样持久保存,除非不这样做。我能找到的所有偏好示例都扩展了偏好活动。
是否可以在首选用户界面中使用基本复选框来设置首选项功能?简短的例子将不胜感激。
答案 0 :(得分:0)
您可以使用 SharedPreferences 自行手动保存偏好设置。然后,您可以在复选框更改后保存/加载设置
CheckBox checkBox = ( CheckBox ) findViewById( R.id.checkbox );
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
// get the preference manager
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// get the editor
SharedPreferences.Editor editor = prefs.edit();
// put the new setting
editor.putBoolean(PREF_NAME, true);
// IMPORTANT - save the new settings
editor.commit();
}
}
}
});
然后,您可以使用
检索设置SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
if (prefs.getBoolean(PREF_NAME, false)) {
// setting dependent code goes here
}
希望有所帮助:)
答案 1 :(得分:0)
您只需访问任何活动中的共享偏好设置......
SharedPreferences preferences = getSharedPreferences( NameAsString, Context.MODE_PRIVATE );
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean( keyAsString, value );
editor.apply();
请注意,editor.apply()是异步的,只有GB和以上版本,使用editor.commit()不到android 2.3
答案 2 :(得分:0)
CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox1);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("checkbox_key", isChecked);
editor.commit();
}
});