我尝试设置ListPreference的默认值,但没有显示任何内容。
您可以检查我的代码是否有任何错误吗?
感谢。
诚然, 伊马德
这是在settings.xml文件中:
<PreferenceCategory android:title="Media:">
<CheckBoxPreference android:key="ChimeWhenMusicIsPlaying"
android:title="@string/ChimeWhenMusicIsPlayingTitle" android:summary="@string/ChimeWhenMusicIsPlayingSummary"
android:defaultValue="false" />
<ListPreference android:title="Chime Volume"
android:key="ChimeVolume" android:summary="Select volume for the chiming sound."
android:entries="@array/chimeVolumeLabels" android:entryValues="@array/chimeVolumeValues"
android:defaultValue="1" />
</PreferenceCategory>
这是在数组文件中:
<resources>
<string-array name="chimeVolumeLabels">
<item>Default</item>
<item>Soft</item>
<item>Medium</item>
<item>Loud</item>
</string-array>
<string-array name="chimeVolumeValues">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
</resources>
答案 0 :(得分:31)
我发现有时我需要清除应用程序数据。卸载并重新安装该应用程序。在那之后,一切都按预期工作。
答案 1 :(得分:10)
我发现我必须在我的偏好设置活动中调用PreferenceManager.setDefaultValues()才能使我的默认值最初显示。
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// This static call will reset default values only on the first ever read
PreferenceManager.setDefaultValues(getBaseContext(), R.xml.settings, false);
addPreferencesFromResource(R.xml.settings);
}
}
答案 2 :(得分:1)
index = listPreference.findIndexOfValue(listPreference.value)
listPreference.setValueIndex(index)