![](/img/trans.png)
[英]Android studio- How to display text page A and B from assets folder in a click of Button1 and Button2 resp
[英]Android Studio- Click button to change the buttons text multiple times
我一直在嘗試每次單擊都更改按鈕的文本,並且在第一次單擊按鈕時就成功了。 一直在使用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
}
當前,每次您單擊按鈕時,都將button標記設置為0:
button.setTag(0);
更改為此:
if(button.getTag() == null){
button.setTag(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,這樣您每個生命周期只需執行一次。
這是您的問題:
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);
button.setTag(0); button.setText(“”);
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);
}
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.