【问题标题】:public void - button.setEnabled with if statement for my situation?public void - button.setEnabled 是否针对我的情况使用 if 语句?
【发布时间】:2018-05-09 04:20:57
【问题描述】:
public void onePointForTeamA(View v) {
    if (foulCounterA == 5) {
        scoreTeamA = scoreTeamA + 1;
        scoreOnePointTeamA = scoreOnePointTeamA + 1;
        displayForTeamA(scoreTeamA);
        displayForTeamAOnePoint(scoreOnePointTeamA);
    }
}


 public void foulCountForTeamA(View v) {
    if (foulCounterA < 5)
        foulCounterA = foulCounterA + 1;
    else
        foulCounterA = 5;
    displayForTeamAFoul(foulCounterA);
}

你好。首先,我对 android 开发和 java 还是很陌生。我已经为这个问题搜索了很多,但我自己找不到解决方案。我想我还在学习。我发现的只是覆盖方法。
关于我的问题;我想将带有“if”的button.setEnabled(true); 添加到我的java 文件中,这样我的按钮将只能点击if (foulCounterA == 5),否则将无法点击。
通过进行该更改,我想更改它的 textView 颜色,我知道该怎么做。
android:onClick="onePointForTeamA"
android:onClick="foulCountForTeamA" 在 XML 文件上。
int scoreTeamA = 0;
int scoreOnePointTeamA = 0;
int foulCounterA = 0; 在 Java 文件上。
有什么建议吗?

【问题讨论】:

  • 您有 2 个选择。设置启用(它在那里但不可点击)或设置它不可见(它在那里但看不到)?
  • 你喜欢哪种选择?
  • 不可点击的。我希望它显示为红色,之后我会调整颜色。
  • 我已经添加了你的解决方案,试试看吧!

标签: java android button buttonclick


【解决方案1】:

您应该知道,这种情况下的参数(View v)ButtonButtonView 的子类。如果你想在你的方法中使用,你可以强制转换

Button button=(Button)v;

但您无需设置启用或可点击行为。

解决方案:

添加行 :

v.setEnabled(false);

您可以在想要禁用它的地方输入true 以启用它。

v.setClickable(false);

要将其设置为不可点击,您可以输入 true 使其再次可点击。

【讨论】:

  • 我刚刚意识到我必须使用 v.setEnabled 类型的代码,因为我定义了它(查看 v)谢谢。但是 atm 当我一键使用v.setEnabled(false); 时,它会禁用该按钮。当(foulCounterB == 5) 达到此要求时,我需要无需单击即可解锁该按钮。 Atm 为了让我激活,再次单击它,这样它就会知道(foulCounterB == 5),但我无法单击它,因为我已禁用它。
  • 好的,我认为我们可能必须在您的代码中添加一些新逻辑,因为当按钮被禁用或不可点击时,您的点击方法将不会被调用!能不能把整个app逻辑说清楚,让我们一起解决!
  • 感谢您的帮助。我在开始时声明了 int 值。 A队有一个分数,它用+3 +2 +1分数(3个不同的按钮)额外一个错误按钮来计算这个分数。我编写了代码,如果没有按下错误按钮 5 次,+1 分数将不会被激活。所以我在 MainActivity 下有 int scoreTeamA = 0; 和许多 public void onClick (View v),它们都改变了 scoreTeamA。
  • 好的,现在我得到了你,我想你已经 onclickable 和 disabled 按钮永远不会感觉到点击。所以我们应该做的是不要将您的按钮设置为禁用或不可点击,而是我们应该在类中定义一个布尔值让我们说private boolean hasReachedFive=false 然后您应该将此值更改为 true 而不是禁用按钮!并检查 falsetrue 的值以找到实际值。
  • 如果可能的话,您能否在我的 github 上查看一下 @Xenolion ,我不太了解那个。 here is the link for github
【解决方案2】:
boolean condition = (foulCounterA == 5);
button.setEnabled(condition);

if(foulCounterA == 5) {
    button.setEnabled(true);
} else {
    button.setEnabled(false);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多