Android 如何为多个片段实现CAB
我有一个ActionBarActivity,它有两个选项卡。我在tab1fragment1中实现了ActionMode.Callback。现在我还想在tab2fragment2中实现它。问题是,即使在我滑动到tab2之后,tab1上下文操作栏仍处于活动状态。这意味着CAB是为一个活动实现的,而不是为特定的片段实现的 那么,在同一活动中托管两个片段中的不同CAB的方法是什么呢?在onCreateActionMode回调中,在片段中保存对ActionMode的引用,然后在片段的onPause中完成操作。例如:Android 如何为多个片段实现CAB,android,android-fragments,Android,Android Fragments,我有一个ActionBarActivity,它有两个选项卡。我在tab1fragment1中实现了ActionMode.Callback。现在我还想在tab2fragment2中实现它。问题是,即使在我滑动到tab2之后,tab1上下文操作栏仍处于活动状态。这意味着CAB是为一个活动实现的,而不是为特定的片段实现的 那么,在同一活动中托管两个片段中的不同CAB的方法是什么呢?在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();
}
}
移动到另一个奇怪的TabFragments时,不会执行onPause。然后,我假设在活动中更改活动选项卡时,您有一个侦听器。你可以在那里做同样的事情,使用回调。啊,这是有道理的。现在,我在第二个片段中实现了弹出式上下文菜单。下次一定会试试你的主意。