title: How to change the color of button and pause screen for few second when it clicked?
body: <p>I am working on android quiz .I wanted to add button. when i click on it change Image or color and holds button for a while to check the answer and If the answer is correct then it show Green Color and wrong red color.</p>
  
  <p>I have Implemented in Change of Color on button like this at the end but i don't understand how to implement Handler to delay :-</p>
  
  <pre><code>public class QuestionActivity extends Activity implements OnClickListener{
  
      private Question currentQ;
      private GamePlay currentGame;
  
  
  
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.question);
          processSession();
  
      }
      private void processSession(){
                  /**
           * Configure current game and get question
           */
          currentGame = ((CYKApplication)getApplication()).getCurrentGame();
          currentQ = currentGame.getNextQuestion();
          Button nextBtn1 = (Button) findViewById(R.id.answer1);
          nextBtn1.setOnClickListener(this);
          Button nextBtn2 = (Button) findViewById(R.id.answer2);
          nextBtn2.setOnClickListener(this);
          Button nextBtn3 = (Button) findViewById(R.id.answer3);
          nextBtn3.setOnClickListener(this);
          Button nextBtn4 = (Button) findViewById(R.id.answer4);
          nextBtn4.setOnClickListener(this);
          Button nextBtn5 = (Button) findViewById(R.id.answer5);
          nextBtn5.setOnClickListener(this);
          /**
           * Update the question and answer options..
           */
          setQuestions();
  
      }
  
  
      /**
       * Method to set the text for the question and answers from the current games
       * current question
       */
      private void setQuestions() {
          //set the question text from current question
          String question = Utility.capitalise(currentQ.getQuestion());
          TextView qText = (TextView) findViewById(R.id.question);
          qText.setText(question);
  
          //set the available options
          List&lt;String&gt; answers = currentQ.getQuestionOptions();
          TextView option1 = (TextView) findViewById(R.id.answer1);
          option1.setText(Utility.capitalise(answers.get(0)));
  
          TextView option2 = (TextView) findViewById(R.id.answer2);
          option2.setText(Utility.capitalise(answers.get(1)));
  
          TextView option3 = (TextView) findViewById(R.id.answer3);
          option3.setText(Utility.capitalise(answers.get(2)));
  
          TextView option4 = (TextView) findViewById(R.id.answer4);
          option4.setText(Utility.capitalise(answers.get(3)));
  
  
          int score = currentGame.getScore();
          String scr = String.valueOf(score);
          TextView score1 = (TextView) findViewById(R.id.score);
          score1.setText(scr);
        try{ 
           new CountDownTimer(20000, 1000) {
  
              public void onTick(long millisUntilFinished) {
                  TextView timers = (TextView) findViewById(R.id.timers);
                  timers.setText("" + millisUntilFinished / 1000);
              }
  
              public void onFinish() { 
                  currentGame.decrementScore();
                  processSession();
                     }
           }.start();
        }
        catch(Exception ex)
        {
            throw new RuntimeException(ex);
        }
          }
  
  
      @Override
      public void onClick(View arg0) {
          //Log.d("Questions", "Moving to next question");
          if(arg0.getId()==R.id.answer5)
          {
          new AlertDialog.Builder(this).setMessage("Are you sure?").setCancelable(true).setPositiveButton("Yes",new DialogInterface.OnClickListener() {
  
  
          public void onClick(DialogInterface dialog,int id) {
                  finish();
                   }
               }).setNegativeButton("No", null).show();
  
                  }
  
          else
          {
  
              if(!checkAnswer(arg0)) return;  
  
          /**
           * check if end of game
           */
          if (currentGame.isGameOver()){
              //Log.d("Questions", "End of game! lets add up the scores..");
              //Log.d("Questions", "Questions Correct: " + currentGame.getRight());
              //Log.d("Questions", "Questions Wrong: " + currentGame.getWrong());
              Intent i = new Intent(this, EndgameActivity.class);
              startActivity(i);
              finish();
          }
          else{
              Intent i = new Intent(this, QuestionActivity.class);
              startActivity(i);
              finish();
            }
          }
        }
  
  
  
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event)
      {
          switch (keyCode)
          {
          case KeyEvent.KEYCODE_BACK :
              return true;
          }
  
          return super.onKeyDown(keyCode, event);
      }
  
  
      /**
       * Check if a checkbox has been selected, and if it
       * has then check if its correct and update gamescore
       */
      private boolean checkAnswer(View v) {
       try {
       final Button b=(Button) v;
       final String answer = b.getText().toString();
       counterTimer.cancel();
       b.setBackgroundResource(R.drawable.ans);
       b.setEnabled(false);
  
       //Log.d("Questions", "Valid Checkbox selection made - check if correct");
  
  
           handler.postDelayed(new Runnable() {
  
              @Override
              public void run() {
                   if( (currentQ.getAnswer().equalsIgnoreCase(answer)))
                  {
                      b.setBackgroundResource(R.drawable.ansgreen);
                      //Log.d("Questions", "Correct Answer!");
                      currentGame.incrementScore();
                  }
                  else{
                      b.setBackgroundResource(R.drawable.ansred);
                      //Log.d("Questions", "Incorrect Answer!");
                      currentGame.decrementScore1();
                  }
             }
           }, 10000000);
  
         } catch (Exception e) {
             e.printStackTrace();
         }
       return true;
  }
  </code></pre>
  
  <p>Any answer is appreciable.</p>
  
  <p>Thank's in advance</p>