2014-10-16 2 views
5

Я использую следующий код Получить ребенок uiautomator но не работаюUIautomator как получить ребенок с помощью индекса или экземпляра

UiObject my = new UiObject(new UiSelector().className("android.widget.LinearLayout").instance(2)); 

    int cound = my.getChildCount(); 
    for(int i = cound - 1; i >= 0; i--) { 
     UiObject childmy2 = my.getChild(my.getSelector().childSelector(new UiSelector().instance(i))); 
     Log.e("xface", "childmy2=" + childmy2.getClassName()); 
     Log.e("xface", "childmy2=" + childmy2.getBounds().toString()); 
    } 

кто-нибудь может мне помочь?

simplyfy мой вопрос: как реализации этой функции:

ArrayList getAllChild (UIObject узел)

вход: данный узел вы хотите GetChild

возвращение: все ребенок данного узла

ответ

7

Предположим, у вас есть:

<parent> 
    <child1> 
      <child1.1></child1.1> 
      <child1.2></child1.2> 
    </child1> 
    <child2> 
      <child2.1></child2.1> 
      <child2.2></child2.2> 
    </child2> 
    <child3> 
      <child3.1></child3.1> 
      <child3.2></child3.2> 
    </child3> 
</parent> 

Пыльник решение будет возвращать результат Child 1, Ребенок 2, Ребенок 3

UiObject object = new UiObject(<UiSelector for Parent>); 
int cnt = object.getChildCount(); 
for(int i = 0; i < cnt; i++) { 
    UiObject eachItem = object.getChild(new UiSelector().index(i)); 
} 

Если вы хотите ребенка 1,1, ребенок 1,2 и ребенок 2,1

UiObject object = new UiObject(<UiSelector for Parent>); 
int cnt = object.getChildCount(); 
for(int i = 0; i < cnt; i++) { 
    UiObject eachItem = object.getChild(new UiSelector().index(i)) 
           .getChild(<UiSelector for child 1.1 or child 1.2 ...>); 
// Note: Before getting this you should check whether it has any child or not. 
} 

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

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