Android 如何在几秒钟后更改按钮的后台资源

Android 如何在几秒钟后更改按钮的后台资源,android,button,background,timer,Android,Button,Background,Timer,我正在创建一个类似记忆游戏的应用程序。一个按钮有一个来自可绘图的图像资源,我想把一个按钮的背景资源恢复到它的默认背景,比如说5秒后 这是我的密码 Collections.shuffle(ShapesArray); this.myImg1=ShapesArray.get(0); img1.setBackgroundResource(myImg1); task = new TimerTask(){ @Override public void run() {

我正在创建一个类似记忆游戏的应用程序。一个按钮有一个来自可绘图的图像资源,我想把一个按钮的背景资源恢复到它的默认背景,比如说5秒后

这是我的密码

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

但是,在5秒钟后,活动力关闭并返回到上一个活动。我对安卓有点陌生。请帮忙(

您可以使用带后期延迟的处理程序,也可以使用倒计时计时器,这里我给出一个倒计时示例,即-

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

谢谢

请发布强制关闭的堆栈跟踪。这是堆栈跟踪。30000和1000做什么?对不起,新手:(我将更改为0?30000还是1000?您希望设置多少延迟来代替30000最终成功了!我仍在计算Android的不同功能,因此感谢您给我时间回答我的问题。谢谢!这里是您希望的总延迟30000,另一个是在每1000毫秒过期后,它将转到勾号()