2013-08-28 96 views
0

我正在創建一個應用程序,它就像一個記憶遊戲。一個按鈕有一個可繪製的圖像資源,我想要一個按鈕的背景資源返回到它的默認背景,比如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有點新鮮。請幫忙。 :(

+0

請張貼的堆棧跟蹤強制關閉 –

+0

這裏是堆棧跟蹤http://shrib.com/stacktrace – Jeongbebs

回答

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

感謝

+0

30000和1000是做什麼的?對不起新手。:( – Jeongbebs

+0

哪個會改爲0?30000或1000? – Jeongbebs

+0

你想要多少延時設置它代替30000 – Ravi