【问题标题】:If condition on Spinner drop-down list如果 Spinner 下拉列表中的条件
【发布时间】:2020-06-03 14:27:22
【问题描述】:

我使用微调器创建了一个下拉列表,但现在我希望在选择某个值时显示一条特定消息,并在输入某个关键字时显示一个 EditText。我尝试使用 if 条件,但它不起作用。场景是这样的:当用户输入自己的age超过18岁并从hire下拉列表中选择“是”时,会出现一条消息,必须同时满足两个条件

 public void stan(View hiring){
        ArrayAdapter<CharSequence> hire=ArrayAdapter.createFromResource(this,R.array.decide, android.R.layout.simple_spinner_item);
        hire.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(hire);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String decide =spinner.getSelectedItem().toString()
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
        int age= Integer.parseInt(aged.getText().toString());
        if(age>18 && spinner.equals("Yes")){
            Toast.makeText(this,"Ok, go eat cabbage sauce",Toast.LENGTH_LONG).show();
        }else{
            Toast.makeText(this,"no",Toast.LENGTH_LONG).show();
        }

【问题讨论】:

    标签: java android android-studio spinner android-spinner


    【解决方案1】:

    试试这个

    public void stan(View hiring){
            ArrayAdapter<CharSequence> hire=ArrayAdapter.createFromResource(this,R.array.decide, android.R.layout.simple_spinner_item);
            hire.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(hire);
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    String decide =spinner.getSelectedItem().toString();
                    int age= Integer.parseInt(aged.getText().toString());
                    if(age>18 && decide.equals("Yes")){
                    Toast.makeText(this,"Ok, go eat cabbage sauce",Toast.LENGTH_LONG).show();
                    }else{
                    Toast.makeText(this,"no",Toast.LENGTH_LONG).show();
                    }
                }
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
    

    【讨论】:

    • 它会产生这个错误:错误:找不到适合 makeText(,String,int) Toast.makeText(this,"好吧,去吃白菜酱",Toast.LENGTH_LONG) 的方法。节目(); ^ 方法 Toast.makeText(Context,CharSequence,int) 不适用(参数不匹配; 无法转换为 Context)方法 Toast.makeText(Context,int,int) 不适用(参数不匹配; 无法转换为上下文)
    • 在toast中使用类上下文,即&lt;Classname&gt;.this
    【解决方案2】:

    使用spinner.getSelectedItem().toString()

    最后,你的条件是

    if(age>18 && spinner.getSelectedItem().toString().equals("Yes")){
                 Toast.makeText(YourActivityName.this,"Ok, go eat cabbage sauce",Toast.LENGTH_LONG).show();
                }else{
                 Toast.makeText(YourActivityName.this,"no",Toast.LENGTH_LONG).show();
                }
    

    【讨论】:

    • @Acesif 我可以知道你的活动名称吗?
    • 它产生这个错误:没有找到合适的方法 makeText(,String,int) Toast.makeText(this,"Ok, go eat cabbage sauce",Toast.LENGTH_LONG).show (); ^ 方法 Toast.makeText(Context,CharSequence,int) 不适用(参数不匹配; 无法转换为 Context)方法 Toast.makeText(Context,int,int) 不适用(参数不匹配; 无法转换为上下文)
    • @Acesif 你应该使用正确的活动名称而不是this。检查我编辑的答案
    • @Acesif 解决了这个问题了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多