SharedPreferences 中的嵌套键控?
我需要能够使用一键访问多个设置。例如:
<EditTextPreference
android:key="@string/channel_url1"
android:defaultValue="http://youtu.be/" />
<EditTextPreference
android:key="@string/num_views1"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/num_subs1"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/channel_url2"
android:defaultValue="http://you.tu/" />
<EditTextPreference
android:key="@string/num_views2"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/num_subs2"
android:defaultValue="0" />
只要我保持每个键都是唯一的,上述方法就有效。但我想要的是每个通道的 num_views
和 num_subs
的键名称相同,这样就可以很容易地在 Java 代码中迭代它们(无需求助)命名约定)。
是否可以在 Android 的首选项 XML 中做到这一点?即使用单个顶级键选择首选项的集合(不一定是同一类型!)?
I need to be able to access multiple settings using one key. For example:
<EditTextPreference
android:key="@string/channel_url1"
android:defaultValue="http://youtu.be/" />
<EditTextPreference
android:key="@string/num_views1"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/num_subs1"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/channel_url2"
android:defaultValue="http://you.tu/" />
<EditTextPreference
android:key="@string/num_views2"
android:defaultValue="0" />
<EditTextPreference
android:key="@string/num_subs2"
android:defaultValue="0" />
The above works as long as I keep each and every key unique. But what I would like instead is have the key name for num_views
and num_subs
identical for each channel, so that it would be easy to iterate through them in Java code (without resorting to naming conventions).
Is it possible to do that in Android's preferences XML? i.e. select a collection of a preferences (not necessarily of the same type!) using a single top-level key?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我所知,这是不支持的。您最好的机会可能是将您需要的所有内容编码到 XML 或 JSON 对象中,并将它们保存到字符串首选项中。但在我看来,这是一笔相当大的开销。
我宁愿使用 SQLite 作为替代方案。
As far as I know, this is not supported. Your best chance is probably to encode all the things you need into a XML or JSON object and save them to a string preference. But thats a neat amount of overhead in my opinion.
I'd say rather use SQLite as an alternative.