TouchUtils.clickView()アプリのテストで別の画面に移動するために使用しようとしています。への呼び出しは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シアンに変わり、0.5 秒後に への呼び出しによって、フォーカスclickViewのある でクリック イベントが生成されますEditText( の目に見えるフラッシュで示されますEditText)。
エミュレーターで新しく CYANed された項目をクリックするだけListViewで、項目をクリックして別の画面に移動しようとするまで、テストが再び機能し始めListViewます。次に、もう一度、EditTextフォーカスのある をクリックして、アイテムを手動でクリックしない限り動かなくなります。
このプロジェクトを何ヶ月も機能していた古いデスクトップから新しいラップトップにインポートして以来、これは機能していません。2つを並べて比較できればいいのですが、古いデスクトップは恐ろしい死を遂げ、開発のためにラップトップに切り替えるようになりました。
ハンドラーまたは呼び出しようとしているビューにさらにコードを提供することもできますOnClickが、手動で数回クリックするだけでアプリが機能します。私の悩みはすべてテストにあります。私はこの仕事をしようとすることにかなり固執しており、どんな提案も喜んで試していきます.