2013-03-12 28 views
0

在我的應用程序中,當數據來自服務器時,我多次動態地誇大了視圖。例如,我多次膨脹linearLayout。現在我正在嘗試使用robotium測試這些動態視圖的點擊。問題是動態添加的佈局具有相同的ID,並且這些佈局會多次添加。我怎樣才能點擊每個動態膨脹的線性佈局。使用robotium點擊動態充氣視圖

+0

您是否檢查'solo.getViews()'中是否存在該佈局。您可以遍歷並檢查它是否爲必需的id。 – andrew 2013-03-12 15:44:16

+0

Robotium能夠通過id,索引,文本識別視圖,因此您可以使用索引進行佈局。 Btw是否有意義點擊線性佈局? – maszter 2013-03-12 15:48:28

回答

1

這是一個靜態函數,它可以做你想做的事(我想我沒有android sdk或者當前機器上的任何東西,所以無法測試)。我不會將它用作靜態函數,我會把它放在某個有意義的地方,但是你可以用它來做它想要的!

public static List<View> getViewsById(Solo solo, int id) { 
    List<View> allViews = getViews(); 
    List<View> matchedViews = new ArrayList<View>(); 
    for(View view : allViews){ 
     if(view!=null && view.getId() == id){ 
      matchedViews.add(view); 
     } 
    } 
    return matchedViews; 
} 
0

使用solo.getView(view.class,index).performClick();獲取特定索引中的視圖並單擊它。

+0

我想過這個方法,但它會給你所有的類,而不需要通過id進行過濾。據我所知,這個問題不適合。 – andrew 2013-03-12 15:52:59

0

它可以通過幾種方式完成。一個簡單的解決方案是當你膨脹一個視圖,當時應用一個點擊監聽器。就像你正在使用某個循環一樣,在每次迭代中,在循環中添加點擊監聽器。