作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 PreferenceGroup 下创建一个新的 CheckBoxPreference 以显示标签。计划是使用如下代码添加标签:
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);
}
但是在关闭 Activity 后,新的复选框消失了。有没有办法保留新创建的首选项?需要明确的是:这不是关于在定义的首选项中存储新值,而是关于存储新创建的首选项。
最佳答案
您可以使用 DB 来存储您所有的标签(这是更可取的)。
或者,如果您出于某种原因不想使用数据库,您可以通过以下方式使用 SharedPreferneces
进行破解:
例如,您的“tags”字符串可能类似于“java;android;helper;europe”。您需要自己进行重复检查和解析。因为您需要在 onCreate()
方法中为每个标记自动填充您的 PreferenceScreen 和 CheckBoxPreference
,但您已经知道该怎么做。
是的,在 API 级别 11 (Android 3.0) 和更高版本中,您可以在 SharedPrefernces
中使用字符串集。参见 getStringSet
和 putStringSet
了解更多详情。
关于android - 创建新的偏好并坚持下去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456941/
我是一名优秀的程序员,十分优秀!