我正在使用robotium來測試我的項目。我在我的項目中使用自定義列表視圖。在視圖尋呼機中的頁面中將有最少3個列表視圖。我的自定義列表查看名稱是MyDragNDropList。在這個列表視圖中,每行將有1個按鈕。此按鈕是將該項目添加到我的個性化列表。一旦項目被添加,按鈕將被禁用。最初我使用的是在自定義列表視圖中獲取視圖
solo.clickOnText("button text"); or
solo.clickOnButton("button text"); or
solo.clickOnButton(buttonindex);
但是現在不工作。所以我嘗試了另一種方法。我將listview設置爲爲單元測試項目創建的listview對象。然後
solo.scrollListToLine(2, position);
solo.waitForDialogToClose(1000);
ListView myList=UnitTestHelperClass.getInstance().listView;
View listElement = myList.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
solo.clickOnView(btn);
如果啓用了第一個可見項目的按鈕,則此代碼將起作用。但是,如果滾動lst,那麼我會在下面一行中得到NullPointerException。
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
這是爲什麼?我該如何解決這個問題?請幫幫我。
編輯 我試過用另一種方法。而不是從源代碼設置listview,我在測試項目本身中得到了這個。
solo.scrollListToLine(2, position);
ListView list=solo.getCurrentViews(ListView.class).get(2);
View listElement=list.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.add_offer_button);
solo.clickOnView(btn);
但這裏我也得到了同樣的問題。前兩項按鈕點擊工作正常。但對於第三項我得到空指針異常。
沒有人有這個想法??? –
是否有可能在列表填充項目之前執行代碼?當你滾動視圖需要重繪。我敢肯定,robotium有一些方法可以檢查listview是準備好還是裝入或準備好(這只是一個鏡頭,但是當我使用robotium之類的東西已經存在時)。 - 您也可以通過調用方法單擊列表項對於(先前檢查項目當然計數!) – deadfish
我需要獲得列表項目視圖後滾動列表item.is它有可能嗎? –