这是一个迟到的答案,但我认为会帮助人们陷入困境。
打开上下文操作栏实际上非常简单,在您的活动中的任何时候您只需调用:
startActionMode(mActionModeCallback);
如果您不在主要活动中,例如在片段中,则可以通过以下方式获得参考
getSherlockActivity().startActionMode(mActionModeCallback);
这是回调
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback(){
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.actionbar_context_menu, menu);
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
return true;
case R.id.menu_item2:
//close the action mode
//mode.finish();
return true;
default:
mode.finish();
return false;
}
}
};
xml 是一个简单的菜单,就像操作栏一样:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item1"
android:icon="@drawable/ic_item1"
android:title="@string/ITEM1"
android:showAsAction="always|withText" />
<item android:id="@+id/menu_item2"
android:icon="@drawable/ic_item2"
android:title="@string/ITEM2"
android:showAsAction="always|withText" />