Странно, я знаю, но это сработало в моем случае.

ужно установить значение по умолчанию для ListPreference, когда начинается деятельность. Я пробовал сListPreference.setDefaultvalue("value"); но он делает первую запись в списке по умолчанию. Мне нужно это, потому что я должен проверить условие и установить по умолчанию значение, которое удовлетворяет этому условию, поэтому я думаю, что это не может быть сделано из файла XML (с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);

Но это не работает, потому что он делает первый выбор по умолчанию. Не могли бы вы объяснить мне, как сделать еще один по умолчанию? Благодарю.

Ответы на вопрос(10)

Ваш ответ на вопрос