編集:実際には私のListPreferenceのデフォルトは設定されていません。ListPreference環境設定でデフォルトが設定されていません
私のアプリケーションが起動すると、setDefaultValuesを呼び出してもListPreferenceのデフォルト値は設定されません。それは間違ったコンテキストでデフォルトを設定しているからですか?
私の環境設定にはすべてキーとデフォルト値があるので、何が間違っているのか分かりません。
マイMainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
updateButtons();
}
/*
Function to open the preferences screen.
*/
public void openSettings(View view) {
Intent i = new Intent(this, PreferencesActivity.class);
startActivity(i);
}
}
マイPreferencesActivity.java
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
マイあるpreferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
android:title="@string/btn_pref1"
android:persistent="false">
<EditTextPreference
android:key="btn1_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn1_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn1_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/btn_pref2"
android:persistent="false">
<EditTextPreference
android:key="btn2_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn2_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn2_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/btn_pref3"
android:persistent="false">
<EditTextPreference
android:key="btn3_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn3_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn3_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/btn_pref4"
android:persistent="false">
<EditTextPreference
android:key="btn4_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn4_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn4_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/btn_pref5"
android:persistent="false">
<EditTextPreference
android:key="btn5_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn5_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn5_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/btn_pref6"
android:persistent="false">
<EditTextPreference
android:key="btn6_name"
android:title="@string/btn_name"
android:defaultValue="@string/btn_name" />
<EditTextPreference
android:key="btn6_cmd"
android:title="@string/btn_cmd_name"
android:defaultValue="@string/btn_default_cmd" />
<ListPreference
android:key="btn6_color"
android:title="@string/btn_color"
android:entries="@array/colorArray"
android:entryValues="@array/colorValues"
android:defaultValue="#024c9b"/>
</PreferenceScreen>
</PreferenceScreen>
私は私の好みのいくつかは、すなわちのEditTextのものを保存しているが、何とかListPreferencesがされていないことがわかったものの、 – rafsanahmad007
を投稿デフォルト値として設定します。私はgetStringを1つ呼び出すと ""得られます。 – Jason