在 onCreate 方法中有带有以下代码的主 Activity:
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SharedPreferences prefs=MainActivity.this.getSharedPreferences("com.qerq.helloworldproject.PreferencesActivity", Activity.MODE_PRIVATE);
String editText=prefs.getString("edit_text", "default_edit_text_value");
boolean checkBox=prefs.getBoolean("check_box", true);
String list=prefs.getString("list", "default_list_value");
Log.i("edit_text_value", editText);
Log.i("check_box_value", String.valueOf(checkBox));
Log.i("list_value", list);
PreferencesActivity 有 xml 布局:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="first_screen_key"
android:summary="First summary"
android:title="First title" >
<CheckBoxPreference
android:persistent="true"
android:title="Check Box Title"
android:key="check_box_key"
android:defaultValue="false"/>
<ListPreference
android:persistent="true"
android:title="List Title"
android:key="list_key"
android:entries="@array/entries"
android:defaultValue="second_value"
android:entryValues="@array/entries_values"/>
<EditTextPreference
android:persistent="true"
android:title="Edit Text Title"
android:key="edit_text_key"
android:defaultValue="Edit Text Value"/>
</PreferenceCategory>
</PreferenceScreen>
但是我总是从代码中得到默认值!我需要使用 PreferencesActivity 更改值,但我还需要从 MainActivity 的源代码中获取值。我该怎么做?