2013-07-02 2 views
1

Я пытаюсь использовать 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 или вида, которое я пытаюсь вызвать, но приложение работает, если я просто добавлю несколько кликов вручную; все мои проблемы с тестом. Я довольно застрял в попытке сделать эту работу и готов попробовать любые предложения.

ответ

0

Добавление минимального и максимального целевого SDK в AndroidManifest.xml сработало для меня; Я получил идею от this answer (которая I elaborated on). В проекте, который проходит испытания (не тестовый проект) я добавил следующую строку AndroidManifest.xml:

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/> 

и все мои использования TouchUtils начал последовательно снова вести; не более раздражающее обходное решение!

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

  • Нет связанных вопросов^_^