先上图,图中控件是我用 UI Automator Viewer 获取到的。


需求是获取到底部的五个 textview 控件,注意是获取到,而不是 click。 底部的五个 textview 的 id 是相同的,不想用 text 去获取,想通过父节点去获取。外层的 TabWidget 的 id 是可知的。中间层的 RelativeLayout 的是没有 id 的。我的想法是通过获取到外层的 TabWidget,然后通过子节点的 index 去获取最终的控件。代码如下。

TabWidget tabWidget = TabWidgetsolo.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 是空,不能点击。获取不到

麻烦大神看下,我写的哪些地方需要改动.


↙↙↙阅读原文可查看相关链接,并与作者交流