2012-02-08 82 views
0

我有我的共享首选项的设置,因此它使用2个数组。除了使用不同的android:entryValues之外,我所有的ListPreference都可以工作。共享首选项始终返回默认值

我搜索了高低,试图找出如何调用android:entryValues,但找不到具体到这个问题的任何东西。

当我使用密钥名称时,它崩溃。

继承人的代码;

XML首选项。

<ListPreference 
    android:title="Item Size" 
    android:summary="Set the item size." 
    android:key="itemSize" 
    android:defaultValue="Medium" 
    android:entries="@array/itemSize" 
    android:entryValues="@array/itemSizeNumbers" 
/> 

XML值

<string-array name="itemSize"> 
    <item>Small</item> 
    <item>Medium</item> 
    <item>Large</item> 
</string-array> 
<string-array name="itemSizeNumbers"> 
    <item>8</item> 
    <item>12</item> 
    <item>18</item> 
</string-array> 

的_items_screen_percentage总是返回12不管。

this._items_screen_percentage = this.prefs.getInt("itemSizeNumbers", 12); 
Log.w("Item Size",Integer.toString(this._items_screen_percentage)); 

有谁知道从共享首选项获取EntryValues的简单方法吗?

回答

0

关键名称是itemSize,所以您应该查询itemSize的首选项,而不是itemSizeNumbers。此外,它是一个字符串数组,所以你的结果将是一个字符串,而不是一个整数。

+0

想通了,谢谢你的帮助,它正盯着我脸上:-( – 2012-02-08 23:29:12

+0

你查询itemSizeNumbers阵列与你从getInt获得的位置 – Peterdk 2012-02-08 23:30:26

+0

你能给我一个这样的例子吗? – 2012-02-08 23:33:11