应该可以吧,如果是在xml布局中只创建一个edittext的话,那界面只会显示1个编辑框,如果显示三个,那就是程序中动态加载了。不管是动态加载还是xml中配置了,都可以通过layout的方式来遍历。
不过你要知道布局有几层,然后edittext的位置在哪个layout中,这样就可以通过view.getParent()的方法来获取布局中的Layout对象,然后再通过这个对象的getChildAt方法去遍历每个布局里的子控件,那就能得到这些编辑框对象了。

解决方案 »

  1.   

    谢谢楼上的仁兄,这个方法我也考虑到了。
    目前的问题是,我仅仅有activity对象,换句话说,我有最顶层的DecorView的控制,而我所需要的View可能在下面四五层中,当然我也不知道这个View的layout的信息,我现在想知道的是如何从最顶层遍历到我需要的View,有什么方法可以遍历这个Android的HierarchyTree。
    而且,我在做的是通用测试,而不是专项测试,所以必须有一个通用的根据ID获得给定的Activity里某个View的方法,现在的情况是碰到了有一个应用里有多个View具有同一ID,那么findViewById是行不通了。
    另外还有不少NO_ID的View,也不知道怎么获取到。
      

  2.   

    getChildAt返回null就是没有吧,有就去判断下id,id你是知道的,虽然3个编辑框相同,但是只要是这个id,那就一定设这三个之一,只要发现就记录一个,知道发现3个,这个应该不难,先getroot,然后一层一层往下找。不知道layout只能这样了,我想是
      

  3.   

    to dinjay:
        我先遍历试试吧,主要是获取到了这三个View之后,还要根据手头的信息判断哪个是我需要的。to woweiwokuang0000:
        我只是负责写测试程序,被测试的应用是由其他公司的人写的,而且已经所固定发布的应用了,他们定义了同一个id,我也没办法。
      

  4.   

    最终还是依据控件层次位置获取到的控件。不过今天发现了一个问题,也许Hierarchy Viewer显示的控件的id是不正确的,这样的话应用里的某些id相同的控件也许并非是有相同的id。这个有待研究Hierarchy Viewer的源码。结贴吧,谢谢楼上的几位仁兄。