“android:key”在<PreferenceScreen>中有什么用?

14

这个例子展示了一个PreferenceScreen的XML布局:

<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:key="first_preferencescreen">
    <CheckBoxPreference
            android:key="wifi enabled"
            android:title="WiFi" />
    <PreferenceScreen
            android:key="second_preferencescreen"
            android:title="WiFi settings">
        <CheckBoxPreference
                android:key="prefer wifi"
                android:title="Prefer WiFi" />
        ... other preferences here ...
    </PreferenceScreen>
</PreferenceScreen> 

我注意到在嵌套的PreferenceScreen中都有android:key属性。

然而,我在应用程序代码中找不到它们的任何使用:实际元素的键(CheckBoxPreference、EditTextPreference等)是程序代码用于访问值的唯一键。

它们能否用于在代码中指定“访问此PreferenceScreen中的CheckBoxPreference而不是另一个PreferenceScreen中的CheckBoxPreference”?即层次访问?

如果不能,那么PreferenceScreen的键的目的是什么?必须定义吗?必须唯一吗?

2个回答

11

它是属于名为Preference的超类的XML属性。它已经被记录在http://developer.android.com/reference/android/preference/Preference.html#attr_android:key中。

应用程序可以利用该键,例如,如果它正在监听特定首选项的更改,如:onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)

是的。密钥的目的和值可能受到很大的限制,但它肯定是唯一的。但是要定义其唯一性及其适用范围,需要进行更多的阅读。 (我只看了几页在线文档)


0

key 是用于访问 Preference 的值。


key xml属性在PreferenceScreen中只是因为它继承了具有此key属性的Preference,但对于PreferenceScreen而言,它是被忽略的。 - Louis CAD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接