Dak*_*ksh 3 android actionbarsherlock android-actionbar
我已经通过ActionBarSherlock实现了一个ActionMode(感谢Jake Wharton为ABS!).
无论如何,我mActionMode.invalidate();每次点击ListView项目时都会调用它
,这也会增加/减少checkedCounter.
然后在public boolean里面onPrepareActionMode(ActionMode mode, android.view.Menu menu),我必须根据checkedCounter的值设置ActionMode内容.
onPrepareActionMode的代码如下:
Run Code Online (Sandbox Code Playgroud)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时,它会使菜单膨胀,其中包含3个项目.但是,当计数器增加到2时,它会使另一个菜单膨胀1个项目,但是会增加先前膨胀的菜单,而不会先取消内容.IE浏览器; 现在,ActionMode在Contextual ActionBar中有2个当前+ 1的当前值!
如何在调用时更改我的代码以从ActionMode中删除以前存在的菜单项mActionMode.invalidate()?
PS:onCreateActionMode()函数为空,因为onPrepareActionMode()执行所有操作,包括当mActionMode为空并且具有第一次要充气的菜单时.
| 归档时间: |
|
| 查看次数: |
4458 次 |
| 最近记录: |