Android 创建新的首选项并将其保留?
我正在尝试在PreferenceGroup下创建一个新的CheckBoxPreference以显示标记。计划添加代码如下的标签:Android 创建新的首选项并将其保留?,android,preferences,Android,Preferences,我正在尝试在PreferenceGroup下创建一个新的CheckBoxPreference以显示标记。计划添加代码如下的标签: for(Tag t : tags) { pref = new CheckBoxPreference(FoodhunterCredentials.this); boolean isChecked = wasChecked(t.getName()); pref.setTitle(t.getName());
for(Tag t : tags) {
pref = new CheckBoxPreference(FoodhunterCredentials.this);
boolean isChecked = wasChecked(t.getName());
pref.setTitle(t.getName());
pref.setSummary(t.getDescription());
pref.setChecked(isChecked);
pref.setPersistent(true);
Log.d("Credentials", String.format("Adding checkbox %s -%schecked", t, isChecked ? " " : " not "));
tagsGroup.addPreference(pref);
}
但在关闭活动后,新的复选框将消失。有没有办法保持新创建的首选项?需要明确的是:这不是在已定义的首选项中存储新值,而是存储新创建的首选项。您无法有问题地修改XML布局文件。您可以存储这样一个事实,即在中有一个额外的复选框,但没有一种超干净的方式来执行您想要的操作。您可以使用DB来存储所有标记(这是最好的) 或者,如果出于某种原因您不想使用DB,您可以通过下一种方式使用
SharedReferences
进行黑客攻击:
onCreate()
方法中使用CheckBoxPreference
自动填充您的首选项屏幕,但您已经知道如何操作
是的,在API级别11(Android 3.0)及更高版本中,您可以在
SharedReferences
中使用字符串集。有关更多详细信息,请参阅和。我使用默认首选项,并使用“打开自定义对话框”复选框。这不完全是我想要的,但它确实起作用了。