我需要在 Activity 启动时设置 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);
但它不起作用,因为它默认为第一个选择。你能解释一下如何将另一个设置为默认值吗?谢谢。
原文由 Gnufabio 发布,翻译遵循 CC BY-SA 4.0 许可协议
你有没有尝试过: