PreferenceActivity中的正确RadioGroup

时间:2011-05-22 11:17:54

标签: android preferenceactivity

是否可以在PreferenceActivity中定义RadioGroup? 我只能在提供多项选择时找到ListView。

我错过了什么吗?

3 个答案:

答案 0 :(得分:0)

从XML或其他示例中查看API演示应用程序 - 首选项 - 首选项。

您基本上可以复制该代码。有一个条目显示带有广播组的列表。

我现在没有代码,但你可以看一下,它类似:

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" />

答案 1 :(得分:0)

  

是否可以在PreferenceActivity中定义RadioGroup?

欢迎您创建自己的DialogPreference子类,该子类恰好托管RadioGroup,但目前还不清楚会给您ListPreference带来什么好处。

  

我只能在提供多项选择时找到ListView。

ListPreference提供单一选择,而不是多种选择。有一个新的MultiSelectListPreference用于多个选项,但只出现在API级别11中。

答案 2 :(得分:0)

欢迎您扩展任何 Preference课程。例如,通过扩展PreferenceCategory,我完成了您正在寻找的内容。通常使用PreferenceScreen添加子项偏好设置(例如EditTextPreferenceaddPreference()),覆盖它并使用setWidgetLayoutResource()按代码更改/设置窗口小部件资源。当然,您的新窗口小部件应包含RadioButton。使用OnPreferenceClickListener设置自定义setOnPreferenceClickListener()

接下来在ViewGroup中获取对onCreateView()“父”的引用。然后,您可以将其转换为ListView中的onBindView(),并在其上设置OnHierarchyChangeListener。现在,当您将Preference的{​​{1}}添加到View时,您会收到通知。在层次结构中的新ListView上设置新的View.OnClickListener,但前提是View包含View。现在管理点击次数。

如果您只需要添加RadioButton作为孩子,这实际上非常简单。我还需要一个PreferenceScreen,这是一个棘手的部分。

好处很简单:您可以在EditTextPreference的上下文之外获得默认的首选项框架外观和行为。 ListPreference看起来也不同。此外,ListPreference只能包含预定义的值。因此,如果您需要使用单选按钮选择ListPreference,那将无法实现。