Android帮助:改变有延迟的按键焦点,执行点击



我刚开始学习Android编程。我正在制作一个可以从外部设备控制的应用程序。我需要4个按钮,它们的焦点周期性地改变,延迟为2s。当我按下传感器时,performclick()将完成。我不知道如何实现它。我使用开关箱语句来获取传感器数据。如果发生了所需的情况,我需要执行单击该按钮。在这种情况下,焦点应该周期性地改变。

eg:按钮1 =>按钮2 =>按钮3 =>按钮4 =>按钮1(焦点变化有2s延迟)

如果case条件为真,button.performclick在当前聚焦按钮上。

谁能说出一个结构或程序代码?我搜索了很多,但我不能理解。

可以使用postDelayed()方法的处理程序。这个方法接受一个实现可运行接口的类。

在这个类中,您只需更改当前按钮焦点,并再次调用postDelayed()方法,使用您的delay(2000)。

代码:

在你的活动中:

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

这不是完整的,但给你一个整体的想法。

最新更新