如何从 CheckBox 视图修改首选项?
How to modify preferences from a CheckBox view?
我的应用需要 3 个步骤才能进行首次设置。
在每个步骤中,我都希望用户能够修改首选项,因为它不是 PreferenceScreen,所以我无法添加 CheckBoxPreference。
我尝试使用 CheckBox 视图,但是我不知道如何让它影响首选项。
如何做到这一点?
您可以像这样为您的首选项写入一个布尔值:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs == null)
return;
SharedPreferences.Editor editor = prefs.edit();
if(editor == null)
return;
editor.putBoolean("prefs_key_for_your_boolean", someBoolean);
editor.commit();
并像这样加载它:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs == null)
return;
someBoolean = prefs.getBoolean("prefs_key_for_your_boolean", defaultBooleanValue);
当你想保存它时,像这样从复选框视图中读取值:
someBoolean = checkBoxView.isChecked();
并使用您从首选项加载的值进行设置,如下所示:
checkBoxView.setChecked(someBoolean);
您可以像这样监听复选框状态的变化:
checkBoxView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// add code here
}
});
我的应用需要 3 个步骤才能进行首次设置。
在每个步骤中,我都希望用户能够修改首选项,因为它不是 PreferenceScreen,所以我无法添加 CheckBoxPreference。
我尝试使用 CheckBox 视图,但是我不知道如何让它影响首选项。
如何做到这一点?
您可以像这样为您的首选项写入一个布尔值:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs == null)
return;
SharedPreferences.Editor editor = prefs.edit();
if(editor == null)
return;
editor.putBoolean("prefs_key_for_your_boolean", someBoolean);
editor.commit();
并像这样加载它:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs == null)
return;
someBoolean = prefs.getBoolean("prefs_key_for_your_boolean", defaultBooleanValue);
当你想保存它时,像这样从复选框视图中读取值:
someBoolean = checkBoxView.isChecked();
并使用您从首选项加载的值进行设置,如下所示:
checkBoxView.setChecked(someBoolean);
您可以像这样监听复选框状态的变化:
checkBoxView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// add code here
}
});