2013-05-29 37 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