API 11之前的MultiChoiceMode

Hap*_*ppo 14 android actionbarsherlock

我使用ActionBarSherlock在我的Android应用程序中实现ActionMode.使用ABS,可以在API 11之前构建一个ActionMode,但是使用的简单方法是: listView.setMultiChoiceModeListener( new MultiChoiceModeListener() ... 不适用于API之前的应用程序.在API 11之前,有没有人有一个很好的方法来构建动作模式上下文菜单?我想长按一下List Item并启动ActionMode,我可以在其中单击多个项目.在一个简单的点击我显示列表项的详细网站.我使用的registerForContext()方法,但这只需要一个简单的长按.

有没有人给我一个很好的建议.

编辑
我的问题的解决方案如下:在长项目上单击我激活操作模式并将其保存在变量中.在on item click方法中,我实现了一个if-else语句:

if( actionMode == null )
{
   // open new activity or update second fragment
   showDetails( itemPosition );
}
else
{
   // update ui or close CAB if no item selected
   showCAB( itemPosition );
}
Run Code Online (Sandbox Code Playgroud)

方法showCAB(position)更新selectedItem计数,高亮显示项目背景等.

Mag*_*cky 12

好吧,我今天就这样做了,感谢该网站:http://www.miximum.fr/tutos/849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps

基本上,您只需将ListView ChoiceMode设置为ListView.CHOICE_MODE_MULTIPLE,设置一个onItemClickListener将检查ListView上检查的项目,并创建一个实现ActionMode.Callback管理上下文ActionBar 的私有类.

我让你继续在博客上看到所有细节和一些代码!


tin*_*oft 5

您还可以查看Google I/O 2012应用程序.它是opensource,并使用ActionBarSherlock.他们开发了ActionMode相关类的兼容版本,可以在ABS和预蜂窝设备上正常工作.

特别是,看看:

基本上,就像ABS一样,他们在可用时使用ActionMode的本机实现,并回退到旧设备上的自定义实现.

希望能帮助到你!