我一步一步地跟踪了所有the instructions for setting default preference values但不起作用。
1º我设置了默认值:
<PreferenceCategory android:title="@string/settings_game" >
<ListPreference
android:defaultValue="1.5"
android:entries="@array/intervale_count"
android:entryValues="@array/intervale_count_values"
android:key="interval"
android:title="@string/interval" />
<ListPreference
android:defaultValue="@string/mode_normal"
android:entries="@array/mode_game"
android:entryValues="@array/mode_game_values"
android:key="mode"
android:title="@string/mode" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_sound" >
<ListPreference
android:defaultValue="@string/stone"
android:entries="@array/time_sounds"
android:entryValues="@array/time_sounds_values"
android:key="time_sounds"
android:title="@string/sounds_stones" />
<ListPreference
android:defaultValue="@string/vuvucela"
android:entries="@array/gong_sounds"
android:entryValues="@array/gong_sounds_values"
android:key="gong_sounds"
android:title="@string/sounds_gong" />
</PreferenceCategory>
2º我在MainActivity
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
}
但是当我打开首选项视图时,没有选择首选项,我在android:defaultValue
中声明的字符串是SAME,它是android:entries
中数据数组中的一个选项。
注意:我尝试在
中更改为true
布尔值
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
但仍然无效。
我还试图卸载并删除应用程序的数据,但仍无效。
编辑:数组值
<string-array name="intervale_count">
<item>1</item>
<item>1.3</item>
<item>1.5</item>
<item>1.7</item>
<item>2</item>
</string-array>
<string-array name="intervale_count_values">
<item>1000</item>
<item>1300</item>
<item>1500</item>
<item>1700</item>
<item>2000</item>
</string-array>
<string-array name="mode_game">
<item>@string/mode_normal</item>
<item>@string/mode_extension</item>
<item>@string/mode_infinite</item>
</string-array>
<string-array name="mode_game_values">
<item>100</item>
<item>50</item>
<item>1000</item>
</string-array>
<string-array name="time_sounds">
<item>@string/alan</item>
<item>@string/cash_reg</item>
<item>@string/censure</item>
<item>@string/crow</item>
<item>@string/doh</item>
<item>@string/fb_noti</item>
<item>@string/achievement</item>
<item>@string/metal_gear</item>
<item>@string/duck</item>
<item>@string/pan</item>
<item>@string/drum</item>
<item>@string/stone</item>
</string-array>
<string-array name="time_sounds_values">
<item>2131099648</item> <!-- Alan -->
<item>2131099649</item> <!-- Registradora -->
<item>2131099650</item> <!-- Censura -->
<item>2131099651</item> <!-- Cuervo -->
<item>2131099652</item> <!-- DOh -->
<item>2131099653</item> <!-- FB -->
<item>2131099655</item> <!-- logro -->
<item>2131099656</item> <!--metal gear -->
<item>2131099657</item> <!-- pato -->
<item>2131099658</item><!-- sarten -->
<item>2131099660</item> <!-- tambor -->
<item>2131099659</item><!-- stone -->
</string-array>
<string-array name="gong_sounds">
<item>@string/gong</item>
<item>@string/vuvucela</item>
</string-array>
<string-array name="gong_sounds_values">
<item>2131099654</item> <!-- Gong -->
<item>2131099661</item> <!-- Vuvucela -->
</string-array>
答案 0 :(得分:1)
defaultValue
的{{1}}属性需要是值,而不是条目文本。换句话说,它应该是传递给ListPreference
的数组中的元素,而不是传递给android:entryValues
的数组中的元素。
例如,您的锣音首选项应使用android:entries
代替android:defaultValue="2131099661"
答案 1 :(得分:0)
如果它不起作用,请尝试从模拟器/设备擦除应用程序数据,然后重新安装该应用程序。在我的项目中做到这一点并遵循Tanis提示后,它就像一个魅力。