代码之家  ›  专栏  ›  技术社区  ›  ol_v_er

如何将ListPreference初始化为它的一个值

  •  71
  • ol_v_er  · 技术社区  · 14 年前

    我正在尝试将defaultValue设置为ListPreference项。

    这是我的一个例子首选项.xml文件:

    <ListPreference android:key="notification_delay"
        android:title="@string/settings_push_delay"
        android:entries="@array/settings_push_delay_human_value"
        android:entryValues="@array/settings_push_delay_phone_value"
        android:defaultValue="????">
    </ListPreference>
    

    两个阵列:

    <string-array name="settings_push_delay_human_value">
        <item>every 5 minutes</item>
        <item>every 10 minutes</item>
        <item>every 15 minutes</item>
    </string-array>
    <string-array
        name="settings_push_delay_phone_value">
        <item>300</item>
        <item>600</item>
        <item>900</item>
    </string-array>
    

    当我进入“首选项”活动时,没有选择ListPreference的任何项。我试着在“android:默认值选择“10分钟”,但不起作用。

    <ListPreference android:key="notification_delay"
        android:title="@string/settings_push_delay"
        android:entries="@array/settings_push_delay_human_value"
        android:entryValues="@array/settings_push_delay_phone_value"
        android:defaultValue="1">
    </ListPreference>
    

    你知道吗?

    4 回复  |  直到 13 年前
        1
  •  91
  •   sven    14 年前

    您需要指定 价值 . 因此,要获得默认选中的第一个条目,请指定 defaultValue="300"

        2
  •  19
  •   coutant    13 年前

    碰巧也是这样。指定一致的默认值。但从图形上看没有被选中。我清除了申请资料。然后一切如期而至。 因此,在开发时添加新的XxxPreference项时,clear可能很有用。

        3
  •  11
  •   Christian Schulzendorff    11 年前

    public class MainActivity extends Activity {
      protected void onCreate(final Bundle savedInstanceState) {
      // Set all default values once for this application
      // This must be done in the 'Main' first activity
      PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
      ...
      }
    }
    
        4
  •  2
  •   Percy Vega    11 年前

    如果它是列表中的有效值,则重新安装应用程序。会有用的。