3

PreferenceActivity で RadioGroup を定義することは可能ですか? 複数の選択肢を提供する場合、ListView しか見つかりませんでした。

何か不足していますか?

4

3 に答える 3

1

どの Preferenceクラスも延長可能です。PreferenceCategoryたとえば、拡張することで、あなたが探していることを正確に行いました。で通常の​​ように子設定 ( や など) を追加しPreferenceScreen、それをオーバーライドして、 でコードでウィジェット リソースを変更/設定します。当然、新しいウィジェットには. でカスタムを設定します。EditTextPreferenceaddPreference()setWidgetLayoutResource()RadioButtonOnPreferenceClickListenersetOnPreferenceClickListener()

次に、 のViewGroup「親」への参照を取得しonCreateView()ます。ListView次に、それをinにキャストし、その上にonBindView()a を設定できOnHierarchyChangeListenerます。Preference子がViewに追加されたときに通知を受け取るようになりましたListViewView.OnClickListener階層内の newに new を設定しますが、 に が含まれているView場合のみです。クリックを管理します。ViewRadioButton

子として追加するだけでよい場合は、実際には非常に簡単ですPreferenceScreenEditTextPreferenceまた、トリッキーな部分である でそれが必要でした。

利点は単純です。デフォルトの環境設定フレームワークの外観と動作を のコンテキスト外で取得できますListPreference。AListPreferenceも違うようです。また、 a にListPreferenceは事前定義された値のみを含めることができます。したがってEditTextPreference、ラジオ ボタンで を選択する必要がある場合、それは不可能です。

于 2013-04-21T15:10:52.603 に答える
0

API Demo App - Preferences - Preferences from 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" />
于 2011-05-22T11:30:26.300 に答える
0

PreferenceActivity で RadioGroup を定義することは可能ですか?

DialogPreferenceをホストする独自のサブクラスを作成することは歓迎されますRadioGroupが、ListPreference.

複数の選択肢を提供する場合、ListView しか見つかりませんでした。

AListPreferenceは、複数の選択肢ではなく、単一の選択肢を提供します。複数の選択肢には新しいものがありますがMultiSelectListPreference、それは API レベル 11 でのみ表示されました。

于 2011-05-22T11:31:26.817 に答える