先上图,图中控件是我用 UI Automator Viewer 获取到的。
需求是获取到底部的五个 textview 控件,注意是获取到,而不是 click。 底部的五个 textview 的 id 是相同的,不想用 text 去获取,想通过父节点去获取。外层的 TabWidget 的 id 是可知的。中间层的 RelativeLayout 的是没有 id 的。我的想法是通过获取到外层的 TabWidget,然后通过子节点的 index 去获取最终的控件。代码如下。
TabWidget tabWidget = (TabWidget)solo.getView("id");//此处的id是tabwidget的id
tv1 = tabWidget.getChildAt(0).getChildAt(0);
tv2 = tabWidget.getChildAt(1).getChildAt(0);
tv3 = tabWidget.getChildAt(2).getChildAt(0);
tv4 = tabWidget.getChildAt(3).getChildAt(0);
tv5 = tabWidget.getChildAt(4).getChildAt(0);
solo.clickOnView(tv1);
这里会报错,说 tv1 是空,不能点击。获取不到
麻烦大神看下,我写的哪些地方需要改动.