2017-02-20 6 views
-1

ボタンのテキストをPに変更した後、同じボタンをクリックしてテキストをAに変更し、再度同じボタンをクリックするとテキストがHに変わるはずですボタンは、テキストはあなたがこのために3つのことを必要になるだろうかボタンのテキストを変更するonclick

+0

声明 –

+0

いくつかのスイッチケースを使用するかどうかを試してみました何を示すコードを含めてください。 –

答えて

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; 
       } 
      } 
     }); 
    } 
} 
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; 
      } 
     } 
    }); 
+0

私は1回押すとPが来るが、何も起こらないときは2回目になる – Disha

+0

onClickスコープからcurrを宣言する –

0

CのAndroid StudioでLに変更する必要が押されて:

  1. をクリックされたボタンに反応する方法をbuの状態を設定して取得する方法ボタンありがたい

上のテキストを変更する方法

  • tton、これらはすべて簡単なタスクです。ボタンのクリックに反応するように

    は、ボタンの状態を設定し、取得するにはそのOnClickListener

    Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         updateButtonState(); 
        } 
    }); 
    

    を設定し、我々は状態を表すの方法が必要です。 P→A→H→Lの単純な状態を記述したので、各点を整数で表すことができます。

    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; 
        } 
    } 
    

    その後、我々は、ちょうど我々がでているものの状態に応じて、ボタンのテキストを設定する方法が必要です。私たちはそれぞれの状態は、テキストの面でどのように見えるかを知る必要があり、これを行うには。

    button.setText(getTextForButtonState(buttonState)); 
    
    private String getTextForButtonState(int buttonState){ 
        if (buttonState == BUTTON_STATE_P){ 
         return "P"; 
        } 
        else if (buttonState == BUTTON_STATE_A){ 
         return "A"; 
        } 
        else if (buttonState == BUTTON_STATE_H){ 
         return "H"; 
        } 
        else if (buttonState == BUTTON_STATE_L){ 
         return "L"; 
        } 
    
        return null; 
    } 
    

    あなたは最も重要なステップは、あなたが状態を処理する場合がありますどのように異なるような決定をたくさん作ることができますステップ2.だったことに気づくでしょう。すべての状態コードを独自のクラスに入れて、そのクラスのメソッドを1つの提案として呼び出すことにします。

    これが役に立ちます。

  • 関連する問題