让我们说我有旋转器,我从中选择存储在字符串数组中的项目,用户可以选择:
<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-一个用于glass array-list,另一个用于tableSpoon array-list。
我希望用户选择Sugar,并让它在我的第一个TextView中相应地显示 string-array glass 200,以及<在我的第二个TextView中强> tableSpoon字符串数组 25。
我希望这些值按照确切的顺序显示,因为它们都列在列表中(例如,Sugar与200和25一起使用.Caster sugar与180和25等相同。)
毫无疑问,可以使用if-else语句,但是给出,我将在所有这些列表中有相当多的值,我怎样才能更有效地执行此操作?
答案 0 :(得分:1)
在onItemSelected方法中,获取为product数组选择的元素的位置,并将其保存在这样的变量中
int index = spinner1.getSelectedItemPosition(); // spinner1 is product spinner
然后从其他两个数组中获取此位置的值,并在文本视图中设置,如下所示
String [] array1 = getResources().getStringArray(R.array.glass);
String [] array2 = getResources().getStringArray(R.array.tablespoon);
然后在文字视图中设置值
textview1.setText(array1[index]);
textview2.setText(array2[index]);
答案 1 :(得分:0)
1。从XML读取字符串数组glass
和tableSpoon
并将其存储到两个变量中,如下所示:
String [] glass = getResources().getStringArray(R.array.glass);
String [] tablespoon = getResources().getStringArray(R.array.tablespoon);
2。在onItemSelected()
方法内,获取所选项position
并使用此position
从数组{{1}获取value
}和glass
。
tableSpoon
希望这会有所帮助〜