Android进阶(二十八)上下文菜单ContextMenu使用案例_上下文菜单实例

114 阅读3分钟

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

html5

开源分享:docs.qq.com/doc/DSmRnRG…      快捷菜单的使用方法与选项菜单极为相似,只是重载的函数不同而已。快捷菜单需要重载onCreatContextMenu()函数初始化菜单项,包括添加快捷菜单所显示的标题、图标和菜单子项等内容。

     有关选项菜单的创建代码,详见博文《Android进阶(二十六)MenuInflater实现菜单添加》,在此不再展示。

源码

 

// 添加快捷菜单
// 1.重写onCreateContextMenu(Menu menu)的方法,在该方法里调用Menu对象的方法来添加菜单项或子菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
MenuInflater inflater = new MenuInflater(this);
// 装填R.menu.production_info_activity_menu对应的菜单,并添加到menu中
inflater.inflate(R.menu.production_info_activity_menu, menu);
menu.setHeaderTitle("QuickMark");
super.onCreateContextMenu(menu, v, menuInfo);
}
 
// 2.若希望应用程序能够相应菜单项的单击事件,重写Activity的onContextItemSelected(MenuItem item)方法即可
@Override
public boolean onContextItemSelected(MenuItem item) {
// 得到当前选中的MenuItem的ID,
int item_id = item.getItemId();
// 判断单击的是是哪个菜单项,并有针对性的做出响应
switch (item_id) {
case R.id.PIA_menuitem_fenxiang: {
Intent intent = new Intent(Intent.ACTION_SEND);
//设置分享类型
//intent.setType("image/*");
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Share");
//好戏在这里!
intent.putExtra(Intent.EXTRA_TEXT,
"#我正在使用“QuickMark”购物评价分享软件(分享自华强APP)#" + product.toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(Intent.createChooser(intent, getTitle()));
};break;
case R.id.PIA_menuitem_shuaxin:{}
}
return true;
}

 

     将快捷菜单注册到界面中的某一控件代码如下:

 

     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.production_info_activity);
         // 将快捷菜单注册到商品二维码图片上
        LinearLayout layout = (LinearLayout) findViewById(R.id.PIA_linearLayout);
        registerForContextMenu(layout);
        .....}

 

      其中,R.id.PIA_linearLayout为整体线性布局的ID。

      效果如下图所示:

             

      至此,快捷菜单创建完毕。

注 onCreateContextMenu与onCreateOptionsMenu的区别

      onCreateOptionsMenu函数仅在第一次使用菜单时被调用一次;

      onCreateContextMenu函数在每次启动都将会被调用一次。

参考文献

最后

编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

名不虚传!字节技术官甩出的"保姆级"数据结构与算法笔记太香了