当我执行代码时,它总是进入else条件。但我希望if语句在score = true时运行;我无法弄清楚如何做到这一点...请帮助我。 如果不是这样,还有其他方法可以接近吗?
public class withComp extends Activity {
public boolean isPlayer2=false, score=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.withcomp);
final Button one = (Button)findViewById(R.id.one);
final TextView winner = (TextView)findViewById(R.id.winner);
one.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(isPlayer2==false)
{
one.setText("X");
score = true;
one.setEnabled(false);
isPlayer2 = true;
}
else
{
one.setText("O");
one.setEnabled(false);
isPlayer2=false;
}
}
});
if(score == true)
{
winner.setText("won");
}
else {
winner.setText("lose");
}
}
}
答案 0 :(得分:5)
只需使用
if(score)
没有逗号
你不需要写
if (variable == true)
或if (variable == false)
写作会好得多
if (variable)
或if (!variable)
答案 1 :(得分:1)
例如:
public class withComp extends Activity {
public boolean isPlayer2=false, score=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.withcomp);
final Button one = (Button)findViewById(R.id.one);
final TextView winner = (TextView)findViewById(R.id.winner);
one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isPlayer2) {
one.setText("X");
score = true;
one.setEnabled(false);
isPlayer2 = true;
} else {
one.setText("O");
one.setEnabled(false);
isPlayer2=false;
}
// XXX Move it here
if (score) {
winner.setText("won");
} else {
winner.setText("lose");
}
}
});
}
}
答案 2 :(得分:0)
您的问题在于if(score == true);
如果条款在条件之后不需要分号,而是声明。给它一个分号会传递null语句,这意味着什么也不会发生。
之后它将执行以下两个块,如果得分为true
,则覆盖要执行的块中发生的事件。
您只需删除分号即可解决此问题,让它正确执行阻止。
答案 3 :(得分:0)
分号表示结束语。删除;
来自if(score == true);
答案 4 :(得分:0)
以这种方式使用它“
if(score){
winner.setText("won");
}
else {
winner.setText("lose");
}
答案 5 :(得分:0)
一些事情,
;
,并且我觉得你能够编译并执行这段代码if-else
块在方法create
中执行,并且您在侦听器中设置了值score
,这意味着,块if-else
将在您创建后执行活动,而按下按钮score
将设置为true