更改按钮的文本一旦单击为P然后再次单击相同的按钮文本应更改为A然后再次单击相同的按钮文本应更改为H然后再次按下按钮时文本应更改到Android中的L如何c
答案 0 :(得分:1)
final Button button = (Button) findViewById(R.id.number);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (curr) {
case 0:
button.setText("P");
curr = curr + 1;
break;
case 1:
button.setText("A");
curr = curr + 1;
break;
case 2:
button.setText("H");
curr = curr + 1;
break;
case 3:
button.setText("L");
curr = 0;
break;
}
}
});
答案 1 :(得分:0)
你需要做三件事:
值得庆幸的是,这些都是简单的任务。
要对按钮单击做出反应,请设置其OnClickListener
protected $connection = (env('APP_ENV') == 'local') ? 'mysql' : 'mysql-heroku';
要设置并获取按钮的状态,我们需要一种表示状态的方法。既然你描述了P - >的简单状态。 A - > H - >我们可以将每个点表示为整数。
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateButtonState();
}
});
然后我们可以简单地将给定状态存储到变量中,根据我们的状态逻辑更改此变量,然后读取变量所处的任何值。
final int BUTTON_STATE_P = 0;
final int BUTTON_STATE_A = 1;
final int BUTTON_STATE_H = 2;
final int BUTTON_STATE_L = 3;
然后我们只需要根据我们处于什么状态来设置按钮文本的方法。为此,我们需要知道每个状态在文本方面的样子。
int buttonState = BUTTON_STATE_P;
private void updateButtonState(){
if (buttonState == BUTTON_STATE_P){
buttonState = BUTTON_STATE_A;
}
else if (buttonState == BUTTON_STATE_A){
buttonState = BUTTON_STATE_H;
}
else if (buttonState == BUTTON_STATE_H){
buttonState = BUTTON_STATE_L;
}
}
您会注意到最重要的一步是第2步。您可以就如何处理某个州做出许多不同的决定。您可能决定要将所有状态代码放入其自己的类中,然后只调用该类的方法,作为一个建议。
希望这有帮助。
答案 2 :(得分:0)
这将100%
public class MainActivity extends AppCompatActivity {
private int current = 0;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (current){
case 0:
button.setText("P");
current = 1;
break;
case 1:
button.setText("A");
current = 2;
break;
case 2:
button.setText("H");
current = 3;
break;
case 3:
button.setText("L");
current = 0;
break;
}
}
});
}
}