Правильная радиогруппа в PreferenceActivity - PullRequest
2 голосов
/ 22 мая 2011

Можно ли определить RadioGroup в PreferenceActivity? Я мог только найти ListView при предложении множественного выбора.

Я что-то упустил?

Ответы [ 3 ]

0 голосов
/ 22 мая 2011

Можно ли определить Радиогруппу в PreferenceActivity?

Вы можете создать свой собственный подкласс DialogPreference, в котором размещается RadioGroup, но неяснокакое преимущество это даст вам по сравнению с ListPreference.

. Я могу найти ListView только при предложении множественного выбора.

A ListPreference предлагает один выбор,не множественный выбор.Существует новый MultiSelectListPreference для нескольких вариантов, но он появился только в API уровня 11.

0 голосов
/ 21 апреля 2013

Вы можете продлить любой Preference класс.Я сделал именно то, что вы ищете, например, добавив PreferenceCategory.Добавьте дочерние настройки (такие как PreferenceScreen и EditTextPreference), как обычно, с addPreference(), переопределите их и измените / установите ресурс виджета с помощью кода с setWidgetLayoutResource().Естественно, ваш новый виджет должен содержать RadioButton.Установите пользовательский OnPreferenceClickListener с помощью setOnPreferenceClickListener().

Далее получите ссылку на ViewGroup «родителя» в onCreateView().Затем вы можете привести его к ListView в onBindView() и установить на него значение OnHierarchyChangeListener.Теперь вы получаете уведомление, когда ребенок Preference View добавляется к ListView.Установите новый View.OnClickListener для нового View в иерархии, но только если View содержит RadioButton.Теперь управляйте щелчками.

На самом деле это довольно просто, если вам нужно только добавить PreferenceScreen в качестве детей.Мне также нужно было это с EditTextPreference, что было непросто.

Преимущества просты: вы получаете внешний вид и поведение структуры предпочтений по умолчанию вне контекста ListPreference.A ListPreference также выглядит иначе.Кроме того, ListPreference может содержать только предварительно определенные значения.Так что если вам нужно выбрать EditTextPreference с помощью переключателя, это было бы невозможно.

0 голосов
/ 22 мая 2011

Посмотрите на приложение API Demos - Предпочтения - Предпочтения из XML или другие примеры.

Вы можете скопировать этот код.Есть запись, которая отображает список с радиогруппой.

У меня сейчас нет кода, но вы можете посмотреть здесь, он похож:

http://www.kaloer.com/android-preferences

<ListPreference
                    android:title="List Preference"
                    android:summary="This preference allows to select an item in a array"
                    android:key="listPref"
                    android:defaultValue="digiGreen"
                    android:entries="@array/listArray"
                    android:entryValues="@array/listValues" />
...