【问题标题】:How To Change Background Resource of Button after Several Seconds如何在几秒钟后更改按钮的背景资源
【发布时间】:2013-08-28 17:36:31
【问题描述】:

我正在创建一个类似于记忆游戏的应用程序。按钮具有来自可绘制对象的图像资源,我希望按钮的背景资源返回其默认背景,例如 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 秒后,活动力关闭并返回到之前的活动。我对Android有点陌生。请帮忙。 :(

【问题讨论】:

标签: android button background timer


【解决方案1】:

您可以使用带有延迟后处理的任何处理程序,也可以使用倒计时计时器,这里我举一个倒计时的例子,那就是-

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 毫秒过期后它会去 tick()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
相关资源
最近更新 更多