java - 比较 Spinner 值以更改 textView

标签 java android

对此有很多旧答案,但没有一个有帮助,在提出这个问题之前我花了两周的时间进行研究。我通过 strings.xml 创建了 2 个微调器,当用户从每个微调器中选择一个选项时,它会将 textView 更改为特定值,例如3. 以下是我根据网上的示例整理的内容,问题似乎是 .equals 和 setText 返回无法解析方法错误。

如果您能提供任何帮助,我们将不胜感激。

public class Main3Activity extends AppCompatActivity implements OnItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        spinner.setOnItemSelectedListener(this);
        Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);

    }

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

        if (spinner.equals("Selection 1")&& spinner2.equals("Option 2"))
            textView8.setText("3");
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
}

IntelliJ 答案解决了我的问题,如下所示。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
    TextView textView8=(TextView) findViewById(R.id.textView8);

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

            if (spinner.getSelectedItem().toString().equals("Selection 1")
                    && spinner2.getSelectedItem().toString().equals("Option 2"))
            {
                textView8.setText("3");
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

}

}

最佳答案

您应该添加getSelectedItem().toString()

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);

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

                       if (spinner.getSelectedItem().toString().equals("Selection 1"))

                       {
                          textView8.setText("3");
                       }
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });

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

                       if (spinner2.getSelectedItem().toString().equals("Option 2"))
                       {
                          textView8.setText("3");
                       }
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });             

     }

关于java - 比较 Spinner 值以更改 textView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629752/

相关文章:

java - 条形码扫描仪使用 ML Kit 仅读取 QR 码

android - 是否可以使用 Retrofit 2 连续向同一端点发出 2 个不同的 POST 请求?

android - Android 6.0及以上系统如何7*24每10秒蜂鸣一次

java - Marker接口(interface)可以用Serialized代替吗

java - 如何避免使用 jsp 从数据库打印重复的名称?

java - 从接口(interface)中的默认方法中访问 super 方法

java - 如何让 maven 获取发布父 pom 而不是最新的?

android - 在设备旋转时打开 Activity 泄漏窗口的 OptionsMenu

java - 如何存储通话记录

java - 非英语短信显示为多个字符串?