2017-02-16 2 views
1

I Possède la méthode countDownTimer() et souhaite imprimer un certain toast si l'utilisateur appuie sur le bouton quand il reste 10 ou 9 secondes. J'essaie de lire l'heure en lisant la textview de la minuterie dans la méthode gameButton() mais elle imprime seulement le toast d'échec et pas le toast de passe. Alors pourquoi je ne peux pas faire ça? Et aussi comment puis-je le faire fonctionner? Merci.Comment savoir quand, pendant la méthode countDownTimer(), un utilisateur appuie sur un bouton?

import android.app.Activity; 
import android.os.CountDownTimer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 


public class GameScreen extends Activity { 

    private TextView time; 
    private Button start; 
    private Button cancel; 
    private Button gameButton; 
    private CountDownTimer countDownTimer; 

    private View.OnClickListener btnClickListener = new View.OnClickListener(){ 

     @Override 
     public void onClick(View v) { 

      switch(v.getId()){ 
       case R.id.start_ID : 
        start(); 
        break; 
       case R.id.cancel : 
        cancel(); 
        break; 
       case R.id.gameButton_ID : 
        gameButton(); 
        break; 
      } 

     } 


    }; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_game_screen); 

     start = (Button) findViewById(R.id.start_ID); 
     start.setOnClickListener(btnClickListener); 
     cancel = (Button) findViewById(R.id.cancel); 
     cancel.setOnClickListener(btnClickListener); 
     time = (TextView) findViewById(R.id.time); 
     gameButton = (Button) findViewById(R.id.gameButton_ID); 
     gameButton.setOnClickListener(btnClickListener); 

    } 

    public void start(){ 
     time.setText("15"); 
     countDownTimer = new CountDownTimer(15 * 1000, 1000) { 
      @Override 
      public void onTick(long millsUntilFinished){ 
       time.setText("" + millsUntilFinished/1000); 

       /* gameButton.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         // Perform action on click 
         //if(time.getText() == "10" || time.getText() == "9"){ 
          Toast.makeText(new GameScreen(), "This is my Toast message!", Toast.LENGTH_LONG).show(); 
         //} 
        } 
       }); */ 
      } 

      public void onFinish(){ 
       time.setText("Done !"); 
      } 
     }; 
     countDownTimer.start(); 
    } 

    private void cancel(){ 
     if(countDownTimer != null){ 
      countDownTimer.cancel(); 
      countDownTimer = null; 
     } 
    } 

    private void gameButton(){ 
     if(time.getText() == "10" || time.getText() == "9"){ 
      Toast.makeText(getApplicationContext(), "PASS", Toast.LENGTH_SHORT).show(); 
     } 
     else{ 
      Toast.makeText(getApplicationContext(), "FAIL", Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

Répondre