这个回答可能有些晚了,但我认为它可以帮助那些遇到困难的人。
打开上下文操作栏其实很简单,在你的活动的任何时刻,你只需要调用以下代码:
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:
return true;
default:
mode.finish();
return false;
}
}
};
这个xml文件是一个简单的菜单,类似于ActionBar的菜单:
<?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" />