【Android】菜单功能的实现:上下文action mode
16lz
2022-07-29
根据google的API,主要是这么两步:
1.实现ActionMode.CallBack接口
private ActionMode.Callback actionCallback = new ActionMode.Callback() {@Overridepublic boolean onPrepareActionMode(ActionMode mode, Menu menu) {// TODO Auto-generated method stubreturn false;}@Overridepublic void onDestroyActionMode(ActionMode mode) {// TODO Auto-generated method stubactionMode = null;}// 表示要加载菜单,从xml中加载@Overridepublic boolean onCreateActionMode(ActionMode mode, Menu menu) {// TODO Auto-generated method stubMenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main, menu);return true;}@Overridepublic boolean onActionItemClicked(ActionMode mode, MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case R.id.edit:edit();break;case R.id.share:Toast.makeText(MainActivity.this, "Share", Toast.LENGTH_SHORT).show();break;case R.id.delete:Toast.makeText(MainActivity.this, "Delete", Toast.LENGTH_SHORT).show();break;default:break;}return false;}public void edit(){Toast.makeText(MainActivity.this, "edit", Toast.LENGTH_SHORT).show();}};
2.调用startActionMode方法:
button.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {// TODO Auto-generated method stubif (actionMode!= null){return false;}actionMode = startActionMode(actionCallback);v.setSelected(true);return true;}});
这时在应用中长按按钮,便弹出菜单。
更多相关文章
- Android(安卓)Wifi模块分析(三)
- Android中dispatchDraw分析
- Android四大基本组件介绍与生命周期
- Android之菜单总结
- Android学习篇之Menu的使用
- Android(安卓)Service AIDL
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- Android(安卓)P SystemUI之StatusBar UI布局status_bar.xml解析
- Android--SoLoader,android动态加载so库