Robotium 请问如何访问 listviewinscrollview 这个控件

yunbin_7 · 2014年12月30日 · 最后由 yunbin_7 回复于 2015年01月15日 · 2585 次阅读

大家好!今天遇到一个问题,就是我通过层级查看器发现,有个控件是使用容器嵌套的,就是在 ScrollView 中嵌套 ListView,导致整个控件只有一个 id,如下截图,我想要访问它的孙子级 textview,由于这个 textview 的 id 和前面的层级的 id 是一样的,而只有 listviewinscrollview 这一级的 id 是唯一的,所以想问下怎么去访问这个控件呢,谢谢!

共收到 8 条回复 时间 点赞

叫开发把 ID 改了。。。
只取过儿子级的,要不你用 SOLO.GETVIEWS 连续取两层试试?只要是 VIEW,你转型一下应该都能取吧?

#1 楼 @yangchengtest 要改 id 估计很难,你说的用 getview 连续取两层是什么意思?怎么操作呢?

ListView A=(ListView) solo.getView("A");
ArrayList B=solo.getViews(A);
RelativeLayout C=(RelativLayout) B.get(INDEX);
ArrayList D=solo.getViews(C);
这样不行的话,我就救不了你了。~

#3 楼 @yangchengtest
RelativeLayout C=(RelativLayout) B.get(INDEX);
这一句有问题,提示 RelativLayout cannot be resolved to a type

#3 楼 @yangchengtest 我知道了,少了个 e。

。。。。。。。RelativLayout 拼错了。。。
我只提供一下思路,具体代码要你自己写。

我有点奇怪为什么不用 findViewById(id) 这个函数呢?它可以直接跨过中间的父辈到孙子或者曾孙子。
这样你只要用 partThreeList 先定义一下
ListViewInSrollView list =solo.getCurrentActivity.findViewById(R.id.partThreeList);
然后孙子辈的
TextView text=list.findViewById(R.id.lv_txt);

#7 楼 @blue_momo2009 因为我没有源码,所以就没有 R.java 的文件,不能使用这个方法哦。所以,现在一直都挺郁闷的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册