Что такое "андроид: ключ" в <PreferenceScreen>, который используется?
В этом примере XML-макет PreferenceScreen:
<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>
Я заметил android:key
для обоих PreferenceScreens (вложенных друг в друга).
Я не мог найти, однако, их использование в коде приложения: единственными ключами, используемыми для доступа к значению по программному коду, являются те из фактических элементов: CheckBoxPreference, EditTextPreference и т.д.
Могут ли они использоваться для указания в коде "доступ к CheckBoxPreference, который находится на этом экране предпочтений, а не в другом"? т.е. иерархический доступ?
Если нет, какова цель ключа для PreferenceScreen? Должно быть определено? Должен ли он быть уникальным?
Ответы
Ответ 1
Это атрибут XML, принадлежащий суперклассу с именем Preference. Документировано
http://developer.android.com/reference/android/preference/Preference.html#attr_android:key
В приложении может быть некоторое использование ключа, скажем, если он прослушивает изменения в определенных предпочтениях, таких как:
onSharedPreferenceChanged (SharedPreferences sharedPreferences, String key)
Да. Основная цель и ценность могут быть ограничены, это, безусловно, уникально. Но чтобы определить, насколько уникальным и в какой области, потребуется больше чтения. (Я не смотрел больше, чем несколько страниц онлайн-документов)
Ответ 2
Клавиша - это значение, используемое для доступа к Предпочтению.