(转载)Android的三种菜单,2024最新大厂高频微服务面试总结

  1. @Override

  2. public boolean onCreateOptionsMenu(Menu menu) {

  3. // Inflate the menu; this adds items to the action bar if it is present.

  4. getMenuInflater().inflate(R.menu.menu, menu);

  5. return true;

  6. }

方法二:通过代码添加menu

[java]  view plain  copy

  1. @Override

  2. public boolean onCreateOptionsMenu(Menu menu) {

  3. //调用这个方法设置图标的可见性

  4. setIconVisible(menu);

  5. /*

  6. * add()方法的四个参数,依次是:

  7. * 1、组别,如果不分组的话就写Menu.NONE,

  8. * 2、Id,这个很重要,Android根据这个Id来确定不同的菜单

  9. * 3、顺序,那个菜单现在在前面由这个参数的大小决定,参数越小,显示的越前

  10. * 4、文本,菜单的显示文本

  11. */

  12. menu.add(Menu.NONE, Menu.FIRST + 1, 5, “删除”).setIcon(

  13. android.R.drawable.ic_menu_delete);

  14. // setIcon()方法设置菜单图标

  15. menu.add(Menu.NONE, Menu.FIRST + 2, 2, “保存”).setIcon(

  16. android.R.drawable.ic_menu_save);

  17. menu.add(Menu.NONE, Menu.FIRST + 3, 6, “帮助”).setIcon(

  18. android.R.drawable.ic_menu_help);

  19. menu.add(Menu.NONE, Menu.FIRST + 4, 1, “添加”).setIcon(

  20. android.R.drawable.ic_menu_add);

  21. menu.add(Menu.NONE, Menu.FIRST + 5, 4, “详细”).setIcon(

  22. android.R.drawable.ic_menu_info_details);

  23. menu.add(Menu.NONE, Menu.FIRST + 6, 3, “发送”).setIcon(

  24. android.R.drawable.ic_menu_send);

  25. return true;

  26. }

  27. //使用反射设置menu图标的可见性

  28. private void setIconVisible(Menu menu) {

  29. try {

  30. Class clazz = Class

  31. .forName(”com.android.internal.view.menu.MenuBuilder”);

  32. Method m = clazz.getDeclaredMethod(”setOptionalIconsVisible”,

  33. boolean.class);

  34. m.setAccessible(true);

  35. m.invoke(menu, true);

  36. } catch (Exception e) {

  37. e.printStackTrace();

  38. }

  39. }

菜单显示效果如下图:

选项菜单设置点击监听

[java]  view plain  copy

  1. @Override

  2. public boolean onOptionsItemSelected(MenuItem item) {

  3. Log.i(TAG, ”onOptionsItemSelected”);

  4. int id = item.getItemId();

  5. switch (id) {

  6. case Menu.FIRST+1:

  7. Toast.makeText(MenuActivity.this, “点击了删除按钮”, Toast.LENGTH_SHORT).show();

  8. break;

  9. default:

  10. break;

  11. }

  12. return super.onOptionsItemSelected(item);

  13. }

上下文菜单

当用户长时间按键不放时,弹出来的菜单称为上下文菜单。Windows中用鼠标右键弹出的菜单就是上下文菜单。

创建上下文菜单的步骤:

① 调用registerForContextMenu()方法,为视图注册上下文菜单。如textView tv

registerForcontextMenu(tv);

最后

我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值