有没有人知道如何使用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>
答案 0 :(得分:0)
我发现使用solo.getView(R.id.am_delete_occurrences)
比activity.findViewById(R.id.am_delete_occurrences)
更可靠。独奏版本工作且活动引用不常见的情况是您进行配置更改或尝试在活动中的片段中查找视图时。