2017-05-12 145 views
0

所以可以說我有微調,從我選擇的項目,存儲在字符串數組,並且用戶可以選擇:顯示項目

<string-array name="products_array"> 
    <item>Sugar</item> 
    <item>Caster sugar</item> 
    <item>Salt</item> 
</string-array> 

而且我也有兩個字符串數組列表,另一個值:

<string-array name="glass"> 
    <item>200</item> 
    <item>180</item> 
    <item>325</item> 
</string-array> 

<string-array name="tableSpoon"> 
    <item>25</item> 
    <item>25</item> 
    <item>30</item> 
</string-array> 

我已經創建了微調,這是我onItemSelected方法,其中,因爲你可以看到,表演,其項目從products_array名單已被用戶選擇(通過使用log.i):

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

    String selected = parent.getItemAtPosition(position).toString(); 
    Log.i("Spinner listener", "Item selected " + selected); 
} 

我有一個佈局文件(片段),其中我有微調和兩個textViews - 一個用於玻璃數組列表,另一個用於tableSpoon數組列表。

我希望用戶選擇,讓說,糖,併爲它從字符串數組玻璃在我的第一個TextView中顯示因此200,並在湯匙字符串數組 25我的第二個TextView。

我想要顯示的準確順序這些值,因爲他們都去了名單上(例如,糖去與200和25砂糖去與180和25等)

毫無疑問,可以使用if-else語句,但是給定的是,我將在所有這些列表中有相當多的值,我怎樣才能更有效地做到這一點?

回答

1

在你onItemSelected方法得到選擇用於產品陣列的元件的位置,並將其保存在一個變量中這樣

int index = spinner1.getSelectedItemPosition(); // spinner1 is product spinner 

,然後從其他兩個陣列這個位置值和在textviews設置這樣

String [] array1 = getResources().getStringArray(R.array.glass); 
    String [] array2 = getResources().getStringArray(R.array.tablespoon); 

,然後設置值在textviews

textview1.setText(array1[index]); 
    textview2.setText(array2[index]); 
+0

你是最好的,工作完美!謝謝! – Zeo

0

1.讀串陣列glasstableSpoon從XML並將其存儲到兩個可變如下:

String [] glass = getResources().getStringArray(R.array.glass); 
String [] tablespoon = getResources().getStringArray(R.array.tablespoon); 

2.內部onItemSelected()方法,得到所選擇的項目position並使用此position到從數組glasstableSpoon獲得value

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

    .......... 
    .............. 

    // Set text 
    firstTextView.setText(glass[position]); 
    secondTextView.setText(tableSpoon[position]); 
} 

希望這將有助於〜