2013-11-19 7 views
0

button.performClick();Запуск несколько performClick() с обновлением пользовательского интерфейса

Для программного обеспечения для демонстрационных целей, я хочу, чтобы показать обновление пользовательского интерфейса после каждой кнопки performClick(). Например, если активность была калькулятор я могу себе имитировать нажатие кнопок [1], [2] и [3] с помощью

btn1.performClick(); 
btn2.performClick(); 
btn3.performClick(); 

Однако эти обновления к EditText слишком быстро без видимой паузы, т.е. появляется «123», которые одновременно записываются на экран. Я хочу: -

btn1.performClick() обновляет пользовательский интерфейс, чтобы люди могли физически видеть только кнопку, которая обновляется до EditText, до следующей кнопки. Аналогично btn2.performClick(), а затем btn3.performClick().

ответ

1

Возможно, вы захотите использовать библиотеку, например Robotium, и используйте метод Solo.waitForText, чтобы делать то, что вы хотите.

Проблема заключается в том, что мы не можем заранее определить время, которое потребуется для отображения текста, поскольку это зависит от содержимого вашего метода onClick.

Именно поэтому Robotium может быть полезен для вас.

+0

Спасибо за ответ, очень полезно. Найденная документация Robotium не самая простая и, наконец, использовалась http://www.youtube.com/watch?v=T_8euppCz3k, что было легко следовать – whitters

0

Использование обработчика для btn2.performClick() и btn3.performClick() как ...

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // do something after 100ms 
     btn2.performClick(); 
    } 
}, 100); 
0

Вы можете использовать

Thread.sleep(delay); 

или использовать

handler.postDelayed(Runnable,delay); 
Смежные вопросы