2013-07-30 17 views
1

如果我想要有一個類,有一個計時器,意圖其他類的類應該放什麼代碼?但它有一個按鈕,如果我點擊按鈕,它會自動意圖到其他課程。它像一個遊戲,如果你不按一下按鈕,你會被轉移到其他類,因爲它有一個時間限制 例子是我應該輸入什麼代碼,如果我想有一個計時器,將意圖其他類

@覆蓋 公共無效的onCreate(捆綁savedInstanceState){ super.onCreate(savedInstanceState ); setContentView(R.layout.easyone); a =(ImageButton)findViewById(R.id.ib_a); b =(ImageButton)findViewById(R.id.ib_b); c =(ImageButton)findViewById(R.id.ib_c); a.setOnClickListener(新View.OnClickListener(){

 @Override 
      public void onClick(View v) { 
       Toast.makeText(getApplicationContext(),"CORRECT!", 
         Toast.LENGTH_SHORT).show(); 
       Intent intent = new Intent(getApplicationContext(),EasyTwo.class); 
       startActivity(intent); 
     } 
    }); 
} 

Thread timer = new Thread(){ 

    protected void timeout() { 
try { 
    sleep(5000); 

    }catch(InterruptedException e){ 
     e.printStackTrace(); 

     Intent intent = new Intent(getApplicationContext(),TimesUp.class); 
     startActivity(intent); 
    } 
} 

};啓動();

} 

} //這個

我不知道什麼樣的代碼應該怎麼輸入,所以我把睡眠,雖然我知道這是錯誤的

我有一個錯誤在最後一個括號我非常noob在括號可以幫助我嗎?

回答

1

從我的理解中,您試圖做的是如果單擊了Button或者時間到了,您想要轉到下一個Activity

,如果你不按一下按鈕,你會被轉移到其他類,因爲它有一個時間限制

與您的代碼,如果Button沒有點擊Thread將無法​​運行因此您需要將該代碼移到Listener之外,以便在Button未被點擊時運行,無論您希望何處啓動。

所以我把睡眠雖然我知道這是錯誤的

sleep()是確定的,因爲它是在一個背景Thread

+0

我非常感謝你的回答,非常感謝。你能幫我編輯一下我的if else語句嗎?新手在編程:) – user2630787

+0

我不知道有什麼可以編輯接受從'onClick'採取'線程'。除非點擊按鈕,否則它將不會運行。也許我誤解你在做什麼... – codeMagic

+0

我的意思是遊戲有時間限制,即使你做或不要點擊按鈕,如果你達到時間限制,你將意圖到另一個類:) hehe hope你可以幫助我:)我真的很感謝 – user2630787

1

您可以只使用一個像這樣的超時:

private void timeout() { 

    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
Intent intent = new Intent(getApplicationContext(),MainMenu.class); 
      startActivity(intent); 

} 
    } 
    }, 5000); 

我一直使用這種方法,我從來沒有任何問題。

+0

我編輯了我的代碼,你可以檢查什麼是錯的? :) – user2630787

相關問題