【问题标题】:to check the combination of pressed buttons检查按下按钮的组合
【发布时间】:2011-09-20 09:38:39
【问题描述】:

我有 4 个按钮(a1、a2、b1、b2)。它们可以组合:a1-b1; a1-b2; a2-b1; a2-b2。表示“a1”和“a2”不能同时选择。所以点击“a1”后,我需要阻止“a2”。并且取决于按下了哪些 2 个按钮,这将是不同的操作。我尝试过这样的事情

if(a1.isPressed()|| b1.isPressed()){
a2.setClickable(false);
b2.setClickable(false);}

但是没有用。

更新:

我尝试添加布尔变量 a1Boolean = false; boolean a2Boolean = false; 每次点击后`a1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            a1Boolean = true;`

然后去检查方法

private boolean geta1_b1() { if (a1Boolean || b1Boolean) { a2.setClickable(false); b2.setClickable(false); } return true; }

但是当我在所有这些点击之前调用这个方法时,当然,它不起作用,因为我还没有按下任何按钮。任何想法如何找到正确的决定?

【问题讨论】:

    标签: android


    【解决方案1】:

    使用else if 语句。对于这种 imo,这是您最好的选择。

    if(a1.isPressed()){
            a2.setClickable(false);
        }else if(b1.isPressed()){
            b2.setClickable(false)
        }
    

    确保在适当的时候清除状态。

    【讨论】:

    • 它没有帮助。即使我写 if(a1.isPressed()){ a2.setClickable(false); } 我可以点击“a2”
    • 您是否尝试过使视图无效?
    • 我应该什么时候使视图无效?
    • if(a1.isPressed()){ a2.setEnabled(false); a2.invalidate();} 仍然不起作用:((
    【解决方案2】:

    您可以尝试 RadioGroup 和 RadioButton 并检查选择了哪一个。

    【讨论】:

    • 这样的?私有布尔 geta1_b1() { if (a1.isChecked()==true || b1.isChecked()==true) { a2.setClickable(false); b2.setClickable(false);返回真; } 返回假; }
    【解决方案3】:

    你可能会看到不可见的按钮,例如:

    如果(a1.isPressed()){ a2.setVisibility(false); }否则如果(b1.isPressed()){ b2.setVisibility(假) }

    【讨论】:

    • 首先,setVisibility不能为假,因为“public void setVisibility(int visibility)Since: API Level 1设置这个视图的启用状态。” 甚至我写了a2.setVisibility(View.走了); - 它不起作用
    【解决方案4】:

    你为什么不用RadioGroups

    【讨论】:

    • 因为它将是按钮内的图像。所以,我不能使用单选按钮
    • 您应该考虑使用单选按钮,原因有两个:1) 编码更容易,2) 用户更容易认识到按钮提供的选项是互斥的。如果您需要按钮内的图像,您可以考虑按照此处的建议设计自定义单选按钮:stackoverflow.com/questions/3576507/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    相关资源
    最近更新 更多