【问题标题】:Disable buttons based on spinner choice根据微调器选择禁用按钮
【发布时间】:2011-04-17 09:40:30
【问题描述】:

所以我在屏幕上有按钮(不是软键盘),但我希望当您选择某个禁用(无法点击) strong>微调器选项。就像我有按钮 0-9(用于数字输入)一样,如果选择了“Base 2”(微调器选择 0),我希望禁用除 0 和 1 之外的所有按钮。

【问题讨论】:

    标签: android button spinner hidden


    【解决方案1】:

    您可以添加一个 OnItemClickListener 并对给出的选项做出反应,例如这种方式

    spinner.setOnItemClickListener(new AdapterView.OnItemSelectedListener() 
        {           
            @Override
                public void onItemSelected(AdapterView<?> parent, 
                    View view, int position, long id) {
    
                    if(position == 1) 
                        button.setClickable(false);
                }
    
        });
    

    【讨论】:

    • 我以为setOnItemClickListener 不支持Spinner
    • 哦对了,应该是spinner.setOnItemSelectedListener()
    【解决方案2】:

    Spinner 不支持setOnItemClickListener。如果你尝试使用它,你会得到一个异常:

    java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner
    

    因此,您应该使用setOnItemSelectedListener

        spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                Toast.makeText(MyActivity.this, "position= "+position+" / id= "+id, Toast.LENGTH_LONG).show();
                switch(position) {
                case 0:
                    button0.setClickable(true);
                    button1.setClickable(false);
                    break;
                case 1:
                    button0.setClickable(false);
                    button1.setClickable(true);
                    break;
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
            }});
    

    【讨论】:

    • 所以我混合了你的两个,我使用了他的“if”语句,但我不能为多个微调器选择做出“else if”语句。我无法让你的 "Toast.makeText(MyActivity.this, "position= "+position+" / id= "+id, Toast.LENGTH_LONG).show(); "工作
    • @Brendan Winter 它的哪一部分不起作用?您应该将MyActivity 更改为包含代码的活动的类名。
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2023-03-11
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多