2013-07-02 15 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 click事件(由EditText中的可見閃光指示)。

如果我只需點擊模擬器中新增的CYANed ListView項目,測試會再次開始工作,直到下一次嘗試通過點擊ListView項目嘗試導航到另一個屏幕。然後,再次,它點擊EditText焦點和卡住,除非我手動點擊該項目。

由於我將這個項目從我的舊桌面導入到我的新筆記本電腦上,而這個筆記本電腦已經工作了好幾個月,所以這個功能還沒有起作用。我希望我可以將兩個並排的比較,但舊桌面死了一場可怕的死亡,促使我改用筆記本電腦進行開發。

我可以爲OnClick處理程序或視圖提供更多的代碼,或者我嘗試調用的視圖,但如果我只需手動添加幾個點擊,該應用程序就可以工作;我所有的麻煩都與測試有關。我很努力地嘗試做這項工作,並且願意嘗試任何建議。

回答

0

在AndroidManifest.xml中添加最小和最大目標SDK爲我工作;我從this answer(其中I elaborated on)得到了這個想法。在被測試的項目(而不是測試項目),添加以下行的AndroidManifest.xml:

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

和我所有的TouchUtils的用途開始再次一貫表現;沒有更煩人的解決方法!