Android ListPreference默认值无效

时间:2016-02-26 10:29:41

标签: android

这是我的代码

 <ListPreference 
         android:key="yearlength"
         android:title="Year Length"
         android:entries="@array/years"
         android:entryValues="@array/yearsvalues"
         android:summary="%s"
         android:defaultValue="365.256363004"/>  

      <string-array name="years">
        <item>Mean sidereal solar year(365.256363004)</item>
        <item>Mean tropical solar year(365.24219)</item>
        <item>Savana year(360)</item>
        <item>Thithi year(354)</item>
        <item>Nakshatra year(324)</item>
        <item>Normal solar year(365.2425)</item>
       </string-array>   

       <string-array name="yearsvalues">
        <item>365.256363004</item>
        <item>365.24219</item>
        <item>360</item>
        <item>354</item>
        <item>324</item>
        <item>365.2425</item>
       </string-array>

我是andorid的新手。默认值未显示。 但是当我设置andorid:defaultValue="360"时,它的work.plz帮助我

3 个答案:

答案 0 :(得分:2)

你应该使用字符串引用。

<string name="default>365.256363004</string>

并使用

<ListPreference 
         android:key="yearlength"
         android:title="Year Length"
         android:entries="@array/years"
         android:entryValues="@array/yearsvalues"
         android:summary="%s"
         android:defaultValue="@string/default"/>

答案 1 :(得分:1)

默认值 inf 被解析为 float ,转换为String,然后存储为Preference默认值。

添加

android:defaultValue="inf"

更多详情Beware of Preference Default Values in XML

答案 2 :(得分:0)

<ListPreference 
         android:key="yearlength"
         android:title="Year Length"
         android:entries="@array/years"
         android:entryValues="@array/yearsvalues"
         android:summary="%s"
         android:defaultValue="365.256363004"/>

不要忘记卸载或清除应用程序数据并重新安装应用程序。