android 提供了一个工具 能够把int 的 *.xml 文件转化为 View 这就是XxxInflater 主要有2种:
* LayoutInflater
* MenuInflater
通常使用:
MenuInflater mInflater = getMenuInflater();LayoutInflater lInflater = getLayoutInflater();

上述二者仅在 Activity 中才有效!

MenuInflater具体使用方法
比如现在在res目录下创建menu文件夹有一个关于menu的描述文件 menu_item.xml 如下:
<?xml version="1.0" encoding="utf-8"?>    <menu xmlns:android="http://schemas.android.com/apk/res/android">        <item             android:id="@+id/Item_1"             android:title="Item_1"          android:icon="@android:drawable/ic_menu_add"    />        <item             android:id="@+id/Item_2"             android:title="Item_2" />        <item             android:id="@+id/Item_3"             android:title="Item_3"           android:enabled="false"  />    </menu>  

现在把它转化为 View.
public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu_item, menu); return true; }


public boolean onOptionsItemSelected(MenuItem item) {           switch (item.getItemId()) {           case R.id.Item_1:                             break;           case R.id.Item_2:               break;           case R.id.Item_3:               break;           }          return super.onOptionsItemSelected(item);     } 

更复杂一点的menu:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:title="Play" android:id="@+id/media_play"  android:icon="@android:drawable/ic_media_play"/><item android:title="Pause" android:id="@+id/media_pause"  android:icon="@android:drawable/ic_media_pause"/><item android:title="File" android:id="@+id/file"><menu><item android:title="Open..." android:id="@+id/file_open"/><item android:title="Save" android:id="@+id/file_save"/><item android:title="Save as" android:id="@+id/file_saveas"/><item android:title="Exit" android:id="@+id/file_exit"/></menu></item><item android:title="Edit" android:id="@+id/edit"><menu><group><item android:title="Copy" android:id="@+id/edit_copy"/><item android:title="Paste" android:id="@+id/edit_paste"/><item android:title="Cut" android:id="@+id/edit_cut"/><item android:title="Delete" android:id="@+id/edit_delete"/></group></menu></item></menu>

LayoutInflater 和 MenuInflater 的使用基本类似 也是根据int 的 *.xml 文件得到 View 所不同的就是 嵌套原因 所以多了一个参数-ViewGroup 用来表示 父View 比如:在 LinearLayout layout 里面有一个 TextView 且其用tv.xml 描述 那么应该如下使用
LayoutInflater inflater = getLayoutInflater(); inflater.inflate(R.layout.tv,layout);

LayoutInflater更详细的用法见下面:
http://gundumw100.iteye.com/admin/blogs/825503

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android(安卓)快速选择联系人
  6. android wpa_supplicant 调试
  7. Android(安卓)7.0 移除设置中的某些项(辅助功能、流量使用情况、
  8. 第15天android:使用sqlite
  9. android新建项目报关于progurad.xml不存在错误

随机推荐

  1. Android新手上路----用短信自动回复来电
  2. Android Studio 构建那些事
  3. Android(安卓)关于lambda 的下划线
  4. webView系列(十一)----webview网页调试之se
  5. Android热修复:Andfix和Hotfix,两种方案的
  6. 【边做项目边学Android】异常处理:android
  7. Windows7 64位系统搭建Cocos2d-x-2.2.1最
  8. 【Android】技术调研:用代码模拟屏幕点击
  9. Android软件安全开发实践(上)
  10. [转]android开发新浪微博客户端 完整攻略