如何测试Android ActionBar子菜单?

时间:2013-09-21 17:41:49

标签: android testing menu junit actionbarsherlock

有没有人知道如何使用android测试框架测试actionbar子菜单项?我正在使用ActionBarSherlock。单击第一个菜单项以获取下拉菜单没有问题:

    final View deleteView = (View) activity.findViewById(R.id.action_discard_trans);
    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            deleteView.requestFocus();
        }
    });
    TouchUtils.clickView(TransListFragTest.this, deleteView);

但是当我在下拉菜单显示后尝试获取子菜单项时,我得到一个空视图。

final View deleteMultiple = (View) activity.findViewById(R.id.am_delete_occurrences);
assertNotNull(deleteMultiple);

这是我的菜单xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:com.paycheckplan="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_discard_trans"
    android:icon="@drawable/content_discard"
    android:showAsAction="always"
    android:title="@string/discard_trans">
    <menu>
        <item
            android:id="@+id/am_delete_one"
            android:title="@string/action_mode_delete_one"/>
        <item
            android:id="@+id/am_delete_occurrences"
            android:title="@string/action_mode_delete_occurrences"/>
    </menu>
</item>

1 个答案:

答案 0 :(得分:0)

我发现使用solo.getView(R.id.am_delete_occurrences)activity.findViewById(R.id.am_delete_occurrences)更可靠。独奏版本工作且活动引用不常见的情况是您进行配置更改或尝试在活动中的片段中查找视图时。