menu 在 android中是个很经常使用的控件,曾经自己做项目的时候通常都是将系统的menu相关方法在activity中直接删去。而且将主题换为fullscreen,然后再在layout中引入自己画好的新的标题栏。

实际上有更好的方法。

并不须要将系统方法删去。仅仅须要将系统menu加上自己的图片,比如:

<?

xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:id="@+id/menu_edit"
android:icon="@drawable/ic_edit"
android:showAsAction="always"
android:title="@string/common_menu_edit"/> </menu>

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_card_details, menu);
tintMenuItems(menu);
return true;
} @Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu_edit).setEnabled(mIsCardDetailsLoaded);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_edit:
Intent intent = prepareIntent(EditCardActivity.class, false);
intent.putExtra(IntentExtra.UNIFIED_CARD, mUnifiedCard);
startActivityForResult(intent, Ids.Request.EDIT_PAYMENT_CARD);
return true; default:
return super.onOptionsItemSelected(item);
}
}

3.2执行时改变Menu ItemonCreateOptionsMenu()仅仅有在menu刚被创建时才会执行。因此要想随时动态改变OptionMenu就要实现onPrepareOptionsMenu()方法。该方法会传给你Menu对象,供使用

Android2.3或更低的版本号会在每次Menu打开的时候调用一次onPrepareOptionsMenu().

Android3.0及以上版本号默认menu是打开的。所以必须调用invalidateOptionsMenu()方法,然后系统将调用onPrepareOptionsMenu()运行update操作。

这样就能够实现我们的自己定义菜单。简单方便。

尽管我认为自己在主layout中包裹一个layout用来做标题栏也非常方便,可是近期的实际开发中,前辈们貌似都是用我刚才提到的方法来做菜单,特记之。

最新文章

  1. php 中的 基本区别点
  2. iOS ---不一样的NSLog打印(精准打印)
  3. iOS中常用的设计模式
  4. 折腾了1周把程序从sqlserver迁移到oracle上了,每折腾一次需要耗费1周时间
  5. c# 哈希表跟函数
  6. Linux选型:开源不是免费 首选红帽和SUSE
  7. printf left justify
  8. mysql一些写常用命令
  9. shopnc 商城源码阅读笔记-缓存技术
  10. 冒泡排序和快速排序的java实现
  11. A swift Tour(2) Control Flow
  12. 使用skin++进行MFC界面美化范例
  13. Java-Maven(六):Eclipse中Maven插件的命令操作
  14. Spring Boot 面试题
  15. TensorRT&amp;Sample&amp;Python[fc_plugin_caffe_mnist]
  16. sysbench工具安装使用
  17. js jquery 正则去空字符
  18. &lt;转&gt;jmeter(十六)配置元件之计数器
  19. 数学与猜想 数学中的归纳和类比 (G. 波利亚 著)
  20. CODE[VS]4228 小猫爬山 小猫爬山

热门文章

  1. jsp动态网页开发基础
  2. iOS keychain入门
  3. 如何防止SQL注入式攻击
  4. Alpha Edition [ Group 1 ]
  5. html5——拖拽
  6. JS——全选与全不选
  7. ASP.net参数传递总结
  8. mysql幻读
  9. JSP学习笔记 - 内置对象 Request
  10. git怎么克隆远程仓库到本地仓库