我一直试图在每次点击时更改按钮的文字,并且在第一次点击按钮时取得了成功。一直在玩button.setTag和button.getTag来尝试转换按钮点击的状态。
正是我想做的......
按钮在开始时默认为“” 首次点击文字转到“X” 第二次单击文本转到“O” 第三次单击文本转到“”//没有尝试启用它
到目前为止,这是我的代码..
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Button button = (Button) findViewById(R.id.button);
button.setTag(0);
button.setText("");
final int status = (Integer) view.getTag();
switch (status) {
case 0:
button.setText("X");
view.setTag(1); //pause
break;
case 1:
button.setText("O");
view.setTag(0); //pause
break;
}
}
});//if you know why android studio makes me add this get bonus points
}
答案 0 :(得分:0)
目前,每次单击按钮时,都会将按钮标记设置为0:
button.setTag(0);
改为:
if(button.getTag() == null){
button.setTag(0);
}
它应该有用。
答案 1 :(得分:0)
int count = 2;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Button button = (Button) findViewById(R.id.button);
count++;
if(count%3==0)button.setText("X");
else if(count%3==1)button.setText("O");
else button.setText("");
}
}
});
}
这个怎么样? 另外,我建议您在onCreate中放置所有小部件,这样您每个生命周期只需执行一次。
答案 2 :(得分:0)
以下是您的问题:
button.setTag(0);
button.setText("");
final int status = (Integer) view.getTag();
所以状态始终为0
。
将您的方法更改为:
button.setTag(0);//do this when you first initialize the button. You can even specify this in Xml with android:tag="0"
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Button button = (Button) findViewById(R.id.button);
button.setText("");
final int status = (Integer) view.getTag();
switch (status) {
case 0:
button.setText("X");
view.setTag(1); //pause
break;
case 1:
button.setText("O");
view.setTag(0); //pause
break;
}
}
});
为了清楚起见,我还建议将标签更改为静态变量。为此,请声明这些类常量:
public static final int STATE_PAUSED = 0;
public static final int STATE_UNPAUSED = 1;
现在您可以使用以下命令设置标记:
view.setTag(STATE_PAUSED);
或
view.setTag(STATE_UNPAUSED);
答案 3 :(得分:0)
button.setTag(0); button.setText("&#34);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Button button = (Button) findViewById(R.id.button);
button.setText("");
final int status = (Integer) view.getTag();
switch (status) {
case 0:
button.setText("X");
view.setTag(1); //pause
break;
case 1:
button.setText("O");
view.setTag(2); //pause
break;
case 2:
button.setText("");
view.setTag(0);
}
}
});
}