ListPreference默认值未显示

时间:2011-09-08 02:37:05

标签: android settings default-value listpreference

我尝试设置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>

3 个答案:

答案 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)