java - 根据用户选择显示 xml <array-list> 中的项目

标签 java android arrays xml

假设我有微调器,我可以从中选择项目,这些项目存储在字符串数组中,用户可以选择:

<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);
}

我有一个布局文件( fragment ),其中有微调器和两个 TextView - 一个用于 glass 数组列表,一个用于 tableSpoon 数组列表。

我希望用户选择,比如说,Sugar,并让它从字符串数组玻璃中显示,相应地在我的第一个 TextView 中显示 200,并且对于 <在我的第二个 TextView 中,strong>tableSpoon 字符串数组 25。

我希望这些值以准确的顺序显示,因为它们都出现在列表中(例如,糖与 200 和 25 搭配。细砂糖与 180 和 25 等搭配)

毫无疑问,可以使用 if-else 语句,但考虑到我在所有这些列表中都会有相当多的值,我怎样才能更有效地做到这一点?

最佳答案

在 onItemSelected 方法中获取为产品数组选择的元素的位置并将其保存在像这样的变量中

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

然后从该位置的其他两个数组中获取值并在 TextView 中设置,如下所示

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

然后在 TextView 中设置值

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

关于java - 根据用户选择显示 xml <array-list> 中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43943859/

相关文章:

java - 如何在 JavaFX 形状中插入 HTML 文本?

Java While 循环与 Java 初学者编程中提出的挑战相关

java - 如何仅检查 Arraylist.Contains(Object) 方法的少数属性应返回 true?

arrays - 在 CoDeSys 中创建一个可变大小的数组

javascript - 如何通过插入数字并将后面的数字向右移动来添加到 Javascript 数组中

java - JAX-RS 请求拦截器缺少依赖项

java - 需要帮助在许多一个字母的不同单词对之间创建单词阶梯(java)

javascript - 使用 javascript 获取手机区域设置

android - 在 Android 中的 MapView 上绘制始终居中的叠加层

python - 使用 numpy 导入数组文件