如何以编程方式单击上下文操作栏上的“完成”按钮?或者更具体地说,这个按钮的id
是什么?如果我知道那么多,我可以使用Robotium点击视图。
更新
hierarchyviewer
会显示值mId
的属性NO_ID
,所以现在我需要帮助解决原始问题。有没有人对如何做到这一点有任何其他想法?特别是,我需要在测试期间单击“完成”按钮。
答案 0 :(得分:1)
或者更具体地说,这个按钮的id是什么?
您要找的ID是action_mode_close_button
。
如何以编程方式单击“上下文”上的“完成”按钮 行动吧?
您可以致电View.performClick
。您需要给View
一个时间布置,以便它不会返回null
。一个简单的解决方案是使用您的Runnable
或任何您用来启动ListView
的{{1}}发布ActionMode
。这是一个例子:
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mList.postDelayed(new Runnable() {
@Override
public void run() {
findViewById(android.R.id.action_mode_close_button).performClick();
}
}, 1000);
return true;
}
答案 1 :(得分:0)
这很hacky,我不喜欢使用它,但它有效。
int doneButtonId = Resources.getSystem().getIdentifier("action_mode_close_button", "id", "android");
View doneButton = getActivity().findViewById(doneButtonId);
if(doneButton != null && doneButton.isClickable(){
doneButton.performClick();
}
我认为.isClickable()可能是不必要的,但为了以防万一我留下它。