3

の StartButtonに問題がCountDownTimerあります。ボタンを押してもタイマーが開始しません。どうすれば修正できますか?

ボタンを押してタイマーを開始したいbuttonCount。誰か助けてくれませんか?

int clicks = 0;
TextView textCount;
ImageButton buttonCount;
int guessCount =0;
boolean started = false;
boolean timerProcessing = false;
private CountDownTimer count;



protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_newgame);

        count = new CountDownTimer(15000, 1000) {
            public void onTick(long millisUntilFinished) {
                int seconds = (int) ((millisUntilFinished / 1000));
                textic.setText("Time Left: " + millisUntilFinished / 1000);
            }

            public void onFinish() {
                textic.setText("Time's Up!");
                buttonCount.setEnabled(false);
                if (clicks > oldscore)
                    getSharedPreferences("myPrefs", MODE_PRIVATE).edit().putInt("highscore", clicks).commit();
            }
        };

        final int oldscore = getSharedPreferences("myPrefs", MODE_PRIVATE).getInt("highscore", 0);
        final TextView textView = (TextView) findViewById(R.id.applesEaten);

        buttonCount = (ImageButton) findViewById(R.id.button);
        buttonCount.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                clicks++;
                textView.setText("Clicks: " + clicks);
                TextView textView = (TextView) findViewById(R.id.topScoreView);
                textView.setText("Best: " + oldscore);

                if(!started){
                    count.start();
                    started = true;
                    timerProcessing = true;
                }
            }
        });
        final TextView textic = (TextView) findViewById(R.id.textView2);
    }
4

1 に答える 1

1

これがあなたが本当にやりたいことだと私には思えます:

    private int clicks = 0;
    private TextView textCount;
    private ImageButton buttonCount;
    private int guessCount = 0;  
    private CountDownTimer count; // RENAMED     
    private boolean started = false; // FALSE. 
    private boolean timerProcessing = false;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_newgame);

        count = new CountDownTimer(15000, 1000) { // MOVED UP
            public void onTick(long millisUntilFinished) {
                int seconds = (int) ((millisUntilFinished / 1000));
                textic.setText("Time Left: " + millisUntilFinished / 1000);
            }

            public void onFinish() {
                textic.setText("Time's Up!");
                buttonCount.setEnabled(false);
                if (clicks > oldscore)
                    getSharedPreferences("myPrefs", MODE_PRIVATE).edit().putInt("highscore", clicks).commit();
            }
        };


        final int oldscore = getSharedPreferences("myPrefs", MODE_PRIVATE).getInt("highscore", 0);
        final TextView textView = (TextView) findViewById(R.id.applesEaten);

        buttonCount = (ImageButton) findViewById(R.id.button);
        buttonCount.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                clicks++;
                textView.setText("Clicks: " + clicks);
                TextView textView = (TextView) findViewById(R.id.topScoreView);
                textView.setText("Best: " + oldscore);

                if(!started){
                    count.start(); // START COUNTDOWN TIMER
                    started = true;
                    timerProcessing = true;

                }

            }
        });
        final TextView textic = (TextView) findViewById(R.id.textView2);


    }

そして、一番下に作成したもの (count という名前) 以外の別の CountDownTimer を本当に開始したい場合。次に、他の CountownTimer の場合と同様に、インスタンスを作成して動作を設定する必要があります。

また、使用するすべての変数は事前に作成する必要があります (textic、oldscore)

于 2014-08-19T21:43:50.123 に答える