2017-11-25 296 views
1
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很新。我为这个问题搜索了很多东西,但是自己找不到解决方案。我想我还在学习。我发现的全部是关于重写方法。
关于我的问题;我想添加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文件。
有什么建议吗?公共无效 - button.setEnabled与if语句我的情况?

+0

你有2种选择。设置启用(它在那里,但不可点击)或将其设置为不可见(它在那里,但没有看到)? – Xenolion

+0

你喜欢哪种选择? – Xenolion

+0

不可点击。我希望它被看作是红色的,我会在调整颜色之后做到这一点。 –

回答

0

你应该知道的是,这种情况下的参数(View v)ButtonButtonView的一个子类。你可以投,如果你想你的方法里面是

Button button=(Button)v; 

但您设置启用或点击行为是不必要的。

SOLUTION:

添加行:如果你希望它被禁用,你可以把true为启用它

v.setEnabled(false); 

OR

v.setClickable(false); 

要设置它不可点击,你可以把true为它是点击一次。

+0

我刚刚意识到我必须使用v.setEnabled类型的代码,因为我定义了它(View v)感谢。但是atm当我使用'v.setEnabled(false);'点击一次后,它会禁用按钮。当'(foulCounterB == 5)'这个要求达到时,我需要那个按钮被解锁而没有点击。 Atm为了激活我再次点击它,它会知道'(foulCounterB == 5)',但我无法点击它,因为我禁用了它。 –

+0

好吧我想我们可能不得不在代码中添加一些新的逻辑,因为当按钮被禁用或不可点击时,不会调用点击方法!你能澄清整个应用程序的逻辑,以便我们可以一起解决它! – Xenolion

+0

谢谢你的帮助。我在开始时声明了int值。 A队有一个得分,它会用+3 +2 + 1得分(3个不同的按钮)来计算这个得分。我做了代码,好像faul按钮没有按下5次,+1分不会被激活。所以我'int scoreTeamA = 0;'在MainActivity下和许多public void onClick(View v)都改变了scoreTeamA。 –

-1
boolean condition = (foulCounterA == 5); 
button.setEnabled(condition); 

OR

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