首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android ActionMode动态替换操作项

Android ActionMode动态替换操作项
EN

Stack Overflow用户
提问于 2012-10-14 16:46:53
回答 1查看 4.8K关注 0票数 3

我已经实现了一个ActionMode通过ActionBarSherlock (感谢杰克沃顿的ABS!)

无论如何,每次单击一个mActionMode.invalidate();项时,我都会调用该ListView项,这也会增加/减少一个checkedCounter。

然后,在公共布尔onPrepareActionMode(ActionMode mode, android.view.Menu menu)内部,我必须根据checkedCounter的值设置checkedCounter内容。

onPrepareActionMode的代码如下:

public boolean onPrepareActionMode(ActionMode mode, android.view.Menu menu) { Log.d("ASDASD", "INSIDE ONPREPARE!"); if (mActionMode == null) { MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.contextualmultiple, menu); return false; } if (checkedCount == 0) { mActionMode.finish(); } else if (checkedCount == 1 && mActionMode != null) { mActionMode.setTitle(checkedCount + " Message Selected"); MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.contextualmultiple, menu); return true; } else if (checkedCount > 1) { mActionMode.setTitle(checkedCount + " Messages Selected"); MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.contextual, menu); return true; } return true; }

现在,问题是,当checkCount为1时,它会膨胀菜单中的三个条目。但是,当计数器增加到2时时,它会用1项来膨胀另一个菜单,但会添加到先前膨胀的菜单中,而不会首先使内容无效。也就是说,现在ActionMode在上下文ActionBar中有2个先前+1的当前!

当调用ActionMode时,如何更改代码以从mActionMode.invalidate()中删除以前存在的菜单项?

P.S.:onCreateActionMode()函数是空的,因为onPrepareActionMode()做了所有事情,包括当mActionMode为null时,并且有一个要第一次膨胀的菜单。

EN

回答 1

Stack Overflow用户

发布于 2012-10-15 06:37:45

哈哈!我为这个可笑的问题找到了一个非常简单的解决办法!

对于其他可能遇到此问题的人,只需在所有inflate()语句之前添加一个menu.clear();语句,就这样!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12884353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档