2013-05-29 35 views
1

我剛開始學習Android編程。我正在製作可以從外部設備控制的應用程序。我需要4個按鈕,它們的焦點會週期性延遲2秒。當我按下傳感器時,將會完成performclick()。我不知道如何實現它。我使用switch case語句來獲取傳感器數據。如果需要的情況下發生,我需要做點擊按鈕。在這種情況下,重點應該週期性地改變。Android幫助:改變按鈕焦點並延遲並執行點擊

例如:按鍵1 =>按鈕2 =>按鈕3 =>按鈕4 =>按鈕1上當前所關注的按鈕(2S延遲焦點變化)

如果情況下條件爲真,button.performclick

任何人都可以說結構或程序代碼嗎?我搜查了很多,但我無法理解它。

回答

0

您可以使用帶postDelayed()方法的處理程序。此方法採用實現可運行接口的類。

在這個類中,您只需更改當前的按鈕焦點,並使用延遲(2000)再次調用postDelayed()方法。

代碼:

在你的活動:

private Handler handler; 
private static final int DELAY = 2000; 

onCreate() 
{ 
this.handler = new Handler(); 
this.handler.postDelayed(ChangeFocusClass, DELAY); 
} 

的運行的類(內部類):

public class ChangeFocusClass implements Runnable{ 

    @Override 
    public void run() { 
     nextButton.requestFocus(); // You need to know which button you have to set focused 
     handler.postDelayed(ChangeFocusClass, DELAY); 
    } 

} 

這是不完整的,但給你一個全球性的想法。

+0

你能發表一個示例代碼嗎?我應該寫在oncreate()下面嗎?或在主類下? – wizard

+0

添加代碼,它只是一個框架。 – cremy

+0

謝謝。你能告訴我如何專注於definit按鈕?我應該只使用nextfocusright嗎?或指定按鈕name.requestfocus?如何循環它從一個按鈕移動到另一個? – wizard