添加计时器并冻结应用程序(android studio)

时间:2016-01-25 09:13:53

标签: java android android-studio

我正在android studio上写一个测验应用程序,现在,我的目标是为每个错误的答案添加一个时间惩罚,意味着,如果用户回答错误,他将不得不等待让我们说10秒'直到他能够再次回答,在那10秒钟内,应用程序将冻结,用户将不得不等待。

我想显示剩余的时间。

计时器应插入代码的这一部分:

    butNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RadioGroup grp = (RadioGroup) findViewById(R.id.radioGroup1);
            RadioButton answer = (RadioButton) findViewById(grp.getCheckedRadioButtonId());
            Log.d("yourans", currentQ.getANSWER() + " " + answer.getText());
            if (currentQ.getANSWER().equals(answer.getText())) {//bad equal to
                score++;
                Log.d("good answer", "Your score" + score);
            }else {
                Log.d("bad answer", "Your score" + score);
               ***//the time should be implemented here***
            }
            if (qid < 7) {
                currentQ = quesList.get(qid);
                setQuestionView();
            } else {
                Intent intent = new Intent(Questionsctivity.this, ResultActivity.class);
                Bundle b = new Bundle();
                b.putInt("score", score); //Your score
                intent.putExtras(b); //Put your score to your next Intent
                startActivity(intent);
                finish();
            }
        }
    });

感谢

3 个答案:

答案 0 :(得分:1)

试试这个:

new Handler().postDelayed(new Runnable() {
                public void run() {
                // code called after 5 seconds...
                }
            }, 5 * 1000);

答案 1 :(得分:0)

您可以disable Click Listenersall the listeners特定时间,然后您可以继续在TextView中显示剩余时间计时器,当达到10秒时,您可以启用点击监听器。

希望这会有所帮助。

答案 2 :(得分:0)

以下是我的解决方案,它很容易理解。希望它有所帮助。

new CountDownTimer(30000, 1000) {

            @Override
            public void onFinish() {
                mTextField.setText("done!");
                // enable your view by butNext.setOnClickListener(listener) or radioGroup.setEnable(true)...
            }

            @Override
            public void onTick(long millisUntilFinished) {
                mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
                // disable your view by butNext.setOnClickListener(null) or radioGroup.setEnable(false)...
            }
        };