在SharedPreferences中嵌套键控?

时间:2011-08-30 23:44:42

标签: android android-preferences

我需要能够使用一个键访问多个设置。例如:

<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_viewsnum_subs的密钥名称,因此很容易在Java代码中迭代它们(不需要求助于命名约定)。 / p>

是否可以在Android的首选项XML中执行此操作?即使用单个顶级密钥选择一个偏好集合(不一定是同一类型!)?

1 个答案:

答案 0 :(得分:2)

据我所知,这不受支持。您最好的机会可能是将所需的所有内容编码到XML或JSON对象中,并将它们保存为字符串首选项。但在我看来这是一笔不小的开销。

我会说使用SQLite作为替代方案。