Я пытаюсь использовать TouchUtils.clickView()
, чтобы перейти на другой экран в тестах моего приложения. Вызов clickView
всегда щелкает неправильный вид:TouchUtils clickView не отображает неправильный вид
public void navigateToWorkout(int i) {
mMonitor = mWorkout.setMonitor(mInstrumentation);
final LinearLayout clickme = (LinearLayout) mWorkouts.getChildAt(i);
pc.runOnUiThread(
new Runnable(){
public void run(){
clickme.setBackgroundColor(Color.CYAN);
}
}
);
try { Thread.sleep(500); } catch (Exception e) {}
TouchUtils.clickView(MyApplicationTest.this, clickme);
mWorkout.getFromMonitor(mMonitor);
}
Получается правильный пункт (LinearLayout
) в ListView
голубого цвета, а затем полсекунды позже вызов clickView
генерирует событие щелчка на EditText
, который имеет фокус (обозначенный видимой вспышкой в EditText
).
Если я просто нажму на новый элемент CYANed ListView
в эмуляторе, тест начнет работать до следующего раза, когда он попытается перейти на другой экран, нажав на элемент ListView
. Затем, опять же, он нажимает на EditText
с фокусом и застревает, если я не нажму на элемент вручную.
Это не сработало с тех пор, как я импортировал этот проект на свой новый ноутбук со своего старого рабочего стола, где он работал месяцами. Мне жаль, что я не мог сравнить эти два бок о бок, но старый рабочий стол умер ужасной смертью, что побудило меня переключиться на ноутбук для разработки.
Я мог бы предоставить больше кода для обработчика OnClick
или вида, которое я пытаюсь вызвать, но приложение работает, если я просто добавлю несколько кликов вручную; все мои проблемы с тестом. Я довольно застрял в попытке сделать эту работу и готов попробовать любые предложения.