Jeongbebs
Jeongbebs

Reputation: 4120

How To Change Background Resource of Button after Several Seconds

I am creating an app which is like a memory game. A button has an image resource from a drawable and I want to the background resource of a button to go back to its default background, say after 5 seconds.

Here is my code.

 Collections.shuffle(ShapesArray);

   this.myImg1=ShapesArray.get(0);
   img1.setBackgroundResource(myImg1);

   task =  new TimerTask(){

    @Override
    public void run() {
        // TODO Auto-generated method stub

        img1.setBackgroundResource(android.R.drawable.btn_default);
    }

   };

   Timer appear = new Timer();
   appear.schedule(task, 5000);

   img1.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            img1.setBackgroundResource(myImg1);
            String txt = PName.getText().toString();
             if(txt.equals("Heart")){
                    if(myImg1 == R.drawable.heart){
                        correct++;
                        img1.setBackgroundResource(android.R.drawable.btn_default);
                    } 
                }

However, after the 5 Seconds, the Activity force closes and goes back to previous activity. I'm kinda new to Android. Please help. :(

Upvotes: 0

Views: 1676

Answers (1)

Ravi
Ravi

Reputation: 2367

You can use either handler with post delay or can use count down timer ,here i am giving an example of count down and that is-

new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
       //This is when you click on each tick it came here after 1000 millisecond
     }

     public void onFinish() {
    // After the time is experied so here can change image

      Printer.setBackgroundResource(R.drawable.prntr);       

     }
  }.start();

Thanks

Upvotes: 1

Related Questions