当Activity开始时,我需要为ListPreference设置defult值。 我已经尝试了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); 但它不起作用,因为它作为默认的首选。 你能解释一下如何使另一个默认? 谢谢。
我正在使用PreferenceActivity来显示我的应用程序的一些设置。 我通过xml文件膨胀设置,以便我的onCreate(和完整的类方法)如下所示: public class FooActivity extends PreferenceActivity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.preference); } } PreferenceActivity PreferenceFragment的javadoc声明 这些首选项将在用户与之交互时自动保存到SharedPreferences中。 要检索此活动中首选项层次将使用的SharedPreferences实例,请使用与此活动相同的包中的上下文调用getDefaultSharedPreferences(android.content.Context)。 但是如何在另一个活动中获得SharedPreference的名称? 我只能打电话 getSharedPreferences(name, mode) 在其他的活动,但我需要的是PreferenceActivity使用的SharedPreference的名称。 什么是名字?我怎样才能找回它?