2013-05-29 3 views
1

Я только начал изучать Android-программирование. Я делаю приложение, которое можно контролировать с внешнего устройства. Мне нужно 4 кнопки, их фокус меняется периодически с задержкой в ​​2 секунды. когда я надаю на датчик, будет сделан performclick(). Я не знаю, как его реализовать. Для получения данных датчиков я использую оператор case switch. Если это необходимо, мне нужно выполнить щелчок по этой кнопке. В этом случае фокус должен циклически меняться.Справка Android: изменение фокуса кнопок с задержкой и выполнение нажатия

например: Кнопка 1 => Кнопка 2 => Кнопка 3 => Кнопка 4 => Кнопка 1 (изменение фокуса с 2s задержки)

если случай условие истинно, button.performclick на текущей кнопке сфокусированным.

Может ли кто-нибудь сказать структуру или программный код? Я много искал, но я не понимаю.

ответ

0

Вы можете использовать обработчик с методом postDelayed(). Этот метод принимает класс, реализующий интерфейс runnable.

В этом классе вы просто изменяете текущий фокус кнопки и снова вызываете метод postDelayed() с задержкой (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); 
    } 

} 

Это не полный, но дать вам глобальную идею.

+0

Вы можете отправить пример кода? Должен ли я писать его в oncreate()? или под основным классом? – wizard

+0

добавлен код, это всего лишь скелет. – cremy

+0

спасибо. вы можете рассказать мне, как сфокусироваться на кнопке «Определить»? Должен ли я использовать nextfocusright? или указать имя кнопки.requestfocus? как его переместить, чтобы перейти от одной кнопки к другой? – wizard

Смежные вопросы