更改按钮的文本onclick

时间:2017-02-20 14:03:10

标签: android

更改按钮的文本一旦单击为P然后再次单击相同的按钮文本应更改为A然后再次单击相同的按钮文本应更改为H然后再次按下按钮时文本应更改到Android中的L如何c

3 个答案:

答案 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)

你需要做三件事:

  1. 对点击按钮作出反应的方法
  2. 设置和获取按钮状态的方法
  3. 更改按钮上文字的方法
  4. 值得庆幸的是,这些都是简单的任务。

    要对按钮单击做出反应,请设置其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;
                }
            }
        });
    }
}