Android 更新PreferenceActivity上的复选框
如何更新我的首选项活动 我已经在SharedReferences中保存了活动中复选框的值(在这种情况下为true)。即使我参加其他活动,我也能看出这是真的。但是,当我转到我的首选项活动时,复选框没有被选中,它是假的。因此,我想知道的是,如何在我的首选项活动中加载我的SharedReferences,以及如何更新复选框(加载值,如果为真,则将复选框设置为选中) 我应该这样装吗Android 更新PreferenceActivity上的复选框,android,Android,如何更新我的首选项活动 我已经在SharedReferences中保存了活动中复选框的值(在这种情况下为true)。即使我参加其他活动,我也能看出这是真的。但是,当我转到我的首选项活动时,复选框没有被选中,它是假的。因此,我想知道的是,如何在我的首选项活动中加载我的SharedReferences,以及如何更新复选框(加载值,如果为真,则将复选框设置为选中) 我应该这样装吗 Shared Preferences SP = getSharedPreferences(DATA, MODE_PRIVA
Shared Preferences SP = getSharedPreferences(DATA, MODE_PRIVATE);
fw = SP.getBoolean("fw", false);
但是,既然我不能使用findViewById,如何设置复选框true或false
编辑:
保存复选框值的活动:
Editor edit = SP.edit();
edit.putBoolean("fw", fwbt.isChecked());
edit.commit();
我的首选项xml文件:
<CheckBoxPreference
android:title="CheckBox FW"
android:key="fw"
android:summary="Estado do CheckBox" />
您需要创建一个
编辑器
来修改共享引用
示例
getSharedPreferences(DATA, MODE_PRIVATE).edit().putBoolean("fw", true).commit();
更新
getSharedPreferences(DATA, MODE_PRIVATE).edit().putBoolean("fw", true).commit();
您还需要在活动中定义已使用的SharedReferences
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName(DATA);
addPreferencesFromResource(R.xml.prefs);
}
我以前没有使用过PreferenceActivity,但我认为您只需要像其他任何活动一样实现它
public class PreferenceWithHeaders extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CheckBox cb = (CheckBox)this.findViewById(IDOFBUTTON);
... do whatever on checkbox
}
我找不到解决办法,所以我放弃了。我刚刚创建了一个自定义首选项,这更简单
无论如何,我以后会继续寻找解决方案。你把事情搞砸了-首选项活动从
共享引用中写入/读取。所以在你的活动中
Shared Preferences SP = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = SP.edit();
edit.putBoolean("fw", fwbt.isChecked());
edit.commit();
你的偏好活动中应该有变化
此外:
SP.edit().putBoolean("fw", fwbt.isChecked()).commit();
行没用。我想我可能表达得不好。我已经在SharedReferences中保存了活动中复选框的值(在这种情况下为true)。即使我参加其他活动,我也能看出这是真的。但是,当我转到我的首选项活动时,复选框没有被选中,它是假的。因此,我想知道的是,如何在我的首选项活动中加载我的SharedReferences,以及如何更新复选框(加载值,如果为真,则将复选框设置为选中)。是否加载包含首选项屏幕
和addPreferencesFromResource(R.XML.pref_classic_外观)的XML文件
然后,复选框首选项的状态与存储到数据的状态不匹配
?您是否在该配置文件中为CheckBoxPreference
定义了键“fw”?我已经用部分代码编辑了我的文章。这是同一个键,我调用了addPreferencesFromResource(R.xml.mypreferencexmlfile)代码>问题是我不能给CheckBoxPreference一个id。