1

我正在尝试TouchUtils.clickView()在我的应用程序测试中使用导航到另一个屏幕。调用clickView总是点击错误的视图:

public void navigateToWorkout(int i) {
    mMonitor = mWorkout.setMonitor(mInstrumentation);
    final LinearLayout clickme = (LinearLayout) mWorkouts.getChildAt(i);
    pc.runOnUiThread(
        new Runnable(){
            public void run(){
                clickme.setBackgroundColor(Color.CYAN);
            }
        }
    );
    try { Thread.sleep(500); } catch (Exception e) {}
    TouchUtils.clickView(MyApplicationTest.this, clickme);
    mWorkout.getFromMonitor(mMonitor);
}

它将正确的项目 ( LinearLayout)变为ListView青色,然后半秒后调用以在具有焦点clickView的对象上生成单击事件(由 中的可见闪光指示)。EditTextEditText

如果我只是在模拟器中单击新的 CYANedListView项目,测试将再次开始工作,直到下一次尝试通过单击ListView项目导航到另一个屏幕。然后,它再次单击EditText焦点并卡住,除非我手动单击该项目。

自从我将这个项目从我已经工作了几个月的旧桌面导入到我的新笔记本电脑上以来,这一直没有奏效。我希望我可以将两者并排比较,但是旧台式机死得可怕,这促使我改用笔记本电脑进行开发。

我可以为处理程序或我试图调用的视图提供更多代码,OnClick但如果我手动添加几下,应用程序就可以工作;我所有的麻烦都与考试有关。我非常坚持尝试完成这项工作,并愿意尝试任何建议。

4

1 回答 1

0

在 AndroidManifest.xml 中添加最小和最大目标 SDK 对我有用;我从这个答案我详细说明)中得到了这个想法。在正在测试的项目(不是测试项目)中,我将以下行添加到 AndroidManifest.xml:

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/>

我对 TouchUtils 的所有使用再次开始表现一致;没有更多烦人的解决方法!

于 2013-12-04T04:28:40.930 回答