我使用setMultiChoiceModeListener的Listview调用操作模式选择要删除的多个项目.在ListView滚动时,我从服务器加载更多数据并通知适配器.后adapter已被通知,操作模式(如果调用)被破坏和重建,这使得标题和选择的ArrayList空(你可以看到下面的图片).列表视图项目选择仍然存在.我希望CAB像我们在Gmail应用中看到的一样持久,在加载更多数据时不会破坏它.
以下是动作模式的代码
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
Item mItem = adapter.items.get(position);
if (mItem.isSection()) {
} else {
mode.setTitle(listView.getCheckedItemCount() + " Selected");
EntryItem mEntryItem = (EntryItem) mItem;
orderid = mEntryItem.orderId;
if (checked) {
selectedIdList.add(orderid);
} else {
selectedIdList.remove(orderid);
}
// Toggle the state of item after every click on it
adapter.toggleSelection(position);
}
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
if …Run Code Online (Sandbox Code Playgroud) 我默认得到这个

我要这个

这应该是微不足道的,但我找不到任何与Android文档相关的内容.
private void setupContextualBar()
{
mActionModeCallback = new ActionMode.Callback()
{
// Called when the action mode is created; startActionMode() was called
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu)
{
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.my_menu , menu);
mCABMenu = menu;
return true;
}
// Called each time the action mode is shown. Always called after onCreateActionMode, but
// may be called multiple times if the mode is invalidated.
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu)
{
updateContextualBar();
return true; …Run Code Online (Sandbox Code Playgroud)