大家好!今天遇到一个问题,就是我通过层级查看器发现,有个控件是使用容器嵌套的,就是在 ScrollView 中嵌套 ListView,导致整个控件只有一个 id,如下截图,我想要访问它的孙子级 textview,由于这个 textview 的 id 和前面的层级的 id 是一样的,而只有 listviewinscrollview 这一级的 id 是唯一的,所以想问下怎么去访问这个控件呢,谢谢!
叫开发把 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 的文件,不能使用这个方法哦。所以,现在一直都挺郁闷的。