アクティビティの開始時に ListPreference のデフォルト値を設定する必要があります。試してみましListPreference.setDefaultvalue("value");
たが、リストの最初のエントリがデフォルトになります。条件を確認し、その条件を満たす値をデフォルトとして設定する必要があるため必要なので、xmlファイルからはできないと思います(with android:defaultValue
)
たとえば、arrays.xml に次の値の配列があるとします。
<string-array name="opts">
<item>red</item>
<item>green</item>
<item>blue</item>
</string-array>
<string-array name="opts_values">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
PreferenceScreen xml で:
<ListPreference
android:title="Colour select"
android:summary="Select your favourite"
android:key="colour"
android:entries="@array/opts"
android:entryValues="@array/opts_values" />
アクティビティでは、次のようなことをしたいと思います:
String mycolour;
if (something) {
mycolour="1";
} else {
mycolour="2";
}
ListPreference colour = (ListPreference) findPreference ("colour");
colour.setDefaultValue(mycolour);
しかし、デフォルトで最初の選択を行うため、機能しません。別のものをデフォルトにする方法を教えてください。ありがとう。