2017-04-06 27 views
1

我用一個微調中的以下內容:獲取微調的名義值

<string-array name="spinner"> 
    <item name="true">Test</item> 
    <item name="false">Test 2</item> 
</string-array> 

現在withing我的方法,我可以得到微調的當前內容:

Spinner spinner = (Spinner) view.findViewById(R.id.spinner); 
value= Boolean.parseBoolean(spinner.getSelectedItem().toString()); 

這裏是微調XML :

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="end" 
    android:spinnerMode="dropdown" 
    android:entries="@array/spinner_content"/> 

但問題是,這個方法返回TestTest 2 。但我需要存儲在itemname內的值,所以truefalse

我怎樣才能得到這個值呢?

+0

微調是一個視圖和一個字符串數組,是否正確? – PSchuette

+0

如果是這樣,你是否考慮過提取內容數組,找到基於內容名稱的項目,然後從這裏檢索itemName?不是一個非常流暢的實現,但它看起來像你的實現中缺少一個步驟。 – PSchuette

+0

我希望有可能像'.getSelectedItemName()。toString()'或類似的東西... – Zoker

回答

0

試試這個:

Spinner spinner = (Spinner) view.findViewById(R.id.spinner); 
if(spinner.getSelectedItem().toString().equals("Test")){ 
    value = true; 
}else if(spinner.getSelectedItem().toString().equals("Test 2")){ 
    value = false; 
} 
+0

這是超緊密耦合的。會建議一個更動態的方法 – PSchuette

+0

也,我想你的意思是'string.contentEquals(otherstring)' – PSchuette

+0

我明白了。是的,我相信這個設置存在根本性的缺陷 – PSchuette