我有ActionBarActivity
有两个标签。我在tab1(fragment1)中实现了ActionMode.Callback
。现在我想在tab2(fragment2)中实现它。问题是即使我滑动到tab2后tab1上下文操作栏也处于活动状态。这意味着CAB旨在为活动实现,而不是针对特定片段。
那么在同一活动中托管的两个片段中使用不同CAB的方法是什么?
答案 0 :(得分:0)
在onCreateActionMode
回调中保存片段中ActionMode
的引用,然后在您的片段onPause
中,您可以完成操作。例如:
protected class MultiChoiceModeListener implements AbsListView.MultiChoiceModeListener {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
ConversationFragment.this.actionMode = mode;
MenuInflater menuInflater = getActivity().getMenuInflater();
menuInflater.inflate(R.menu.menu_delete_conversation, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(final ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
ConversationFragment.this.actionMode = null;
}
}
@Override
public void onPause() {
super.onPause();
if (actionMode != null) {
actionMode.finish();
}
}