直入正题:当在模拟器调用 getEditText(int index)方法时候 index会发生识别错误。
刚开始在手机测试,activity界面有一个EditText
点击按钮后弹出一个Dialog,其中有一个EditText
此时在真机中通过solo.getEditText(0),获取到的EditText 是当前dialog中的
但是 在模拟器中 得到的却是 activity中的,而solo.getEditText(0)得到的是dialog中的EditText。
发现这个问题后采用 getEditText(String text)的方法,通过查找EditText的 hint的text查找EditText,这样就能找到正确的目标。
总结:在当前屏幕有多个 同类需要查找的View的时候
1.如果View在同一布局文件中,可以通过getView(int index)方式获取
2.如果View不在同一布局文件中(部分View在弹出的Dialog等中)时候,不要采用getView(int index)的方式获取,通过识别view上面的文字获取--getView(String text)