【问题标题】:Android how to assign a spinner position an integer valueAndroid如何为微调器位置分配一个整数值
【发布时间】:2025-12-24 17:45:16
【问题描述】:

好的,我有一个用字符串填充的微调器,如何使用数组为整数赋值?

例如微调器有

  1. “一些价值
  2. “另一个值”等

When 1 is selected how can I then initialize a variable based on selection, use an if statement or switch/case?

我已经包含了一些注释代码来说明我想要了解的内容,在这个示例中,我有一个名为 'actLevel' 的 int 被填充。

public class spinActMultFunction implements OnItemSelectedListener {
    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long id) {
        String str=parent.getItemAtPosition(pos).toString();
        activityMultiplier.setText(str);

        /*
         If (pos) = 1
            then actLevel = 1.2 
        else if (pos) = 2
            then actLevel = 1.6

        etc..
        */
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
}

【问题讨论】:

  • 两者都可以,但我会使用switch。但是,你遇到的问题是什么?此外,position 从 0 开始,所以 position 1 实际上是您的第二项
  • 好吧,看起来switch(pos) 可以解决您的问题。
  • 很高兴看到我在正确的轨道上,我已经阅读了很多获取数组位置的复杂方法。无论如何,开关在这里如何工作?就像我通过什么案例一样?
  • 这样的? switch (pos){ case pos=0: actLevel = 1.2;休息; case pos=1: actLevel = 1.6;休息; case pos=2: actLevel= 1.8;休息; } 对不起,我在过去使用按钮时只使用了 switch 语句

标签: java android arrays spinner


【解决方案1】:

这最终奏效了:

public void onItemSelected(AdapterView<?> parent, View arg1, int pos,
                long id) {
            String str = parent.getItemAtPosition(pos).toString();
            activityMultiplier.setText(str);

            switch(pos){

            case 0:
                actLevel = 1.2;
                break;

            case 1:
                actLevel = 1.3;
                break;

            case 2:
                actLevel = 1.5;
                break;

            case 3:
                actLevel = 1.7;
                break;
            case 4:
                actLevel = 1.9;
                break;

            }

        }

【讨论】:

    最近更新 更多