我需要在活動啓動時爲ListPreference設置defult值。 我已經試過ListPreference.setDefaultvalue("value");
,但是它使列表的默認條目成爲列表的入口。我需要它,因爲我必須檢查一個條件並將默認值設置爲滿足該條件的值,所以我認爲它不能從xml文件完成(使用android:defaultValue
)如何設置ListPreference的默認值
例如,假設我有這個數組
<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:在arrays.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);
但它不起作用,因爲它使默認情況下的第一選擇。你能解釋我如何使另一個默認?謝謝。
我不確定這是否是正確的解決方案,因爲setValue或setValueIndex將有效地設置值,即使用戶已經提供了存儲在首選項中的自定義值。對我有用的是 'if(colour.getValue()== null){ colour.setValue(mycolour); }' – mtotschnig 2012-04-10 10:37:39
什麼是'int index'?如果我想設置一個定義的字符串呢? – 2016-11-02 18:07:19
如何檢索存儲在永久存儲器中的最後一個值,該值是爲持久存儲設置的首選項? – 2017-11-25 21:41:46