如何在countDownTimer()方法中告诉用户何时按下按钮?

时间:2017-02-16 22:17:21

标签: android countdowntimer

我有countDownTimer()方法,并且如果用户在计时器还剩10或9秒时按下按钮,则想要打印某个吐司。我试图通过在gameButton()方法中读取计时器的textview来读取时间,但它只打印失败的toast而不是pass toast。那我为什么不这样做呢?而且我怎样才能让它发挥作用?谢谢。

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

}

1 个答案:

答案 0 :(得分:1)

使用equals方法not == operator

 time.getText().equals("10") || time.getText().equals("9")

请参阅What is the difference between == vs equals() in Java?