Android Preferences - изменение порядка, в котором они появляются


Я пытаюсь создать иерархию классов, которые начинаются с PreferenceActivity.

Идея состоит в том, что базовый класс содержит кнопку "обо мне", затем следующий класс реализует общие настройки для игр/приложений/обоев, а затем следующий класс добавляет специфику для каждой конкретной игры/приложения.

Идея работает хорошо, но поскольку я "добавляю" предпочтения из XML на каждом уровне, они появляются с самыми общими (самый низкий уровень) из них сначала (например, мой "о" кнопка).

В идеале я хотел бы, чтобы они были наоборот - так, чтобы конкретные предпочтения появлялись в верхней части списка, а общие - в нижней-есть ли способ достичь этого (я прочитал документы о PreferenceFragments и новых PreferenceHeaders, и даже это, кажется, ничего не предлагает?)

Существует ли какой-либо программный способ перемещения PreferenceCategorys или PreferenceScreens в пределах общего порядка??

По существу, когда я использование

addPreferencesFromResource(R.xml.clock_settings);

Я хотел бы иметь

addPreferencesFromResourceAtBottom(R.xml.clock_settings);
1 2

1 ответ:

Я начинаю хорошо отвечать на свои собственные вопросы здесь:)

Решение заключается в следующем:android:order XML-параметр-используя его с Preference (или PreferenceGroup или его подклассом), вы будете сортировать материал в правильной последовательности на экране!

Вы также можете изменить это динамически с помощью setOrder() но он не будет переупорядочивать Preferences, Если они уже были добавлены к PreferenceGroup.