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. CreateProcess error = 2,系统找不到指定的文件
  2. Android 文件管理器 Android文件管理器源代码
  3. Android创建隐藏文件或者文件夹
  4. Android中的File文件存储及读取file中的Bitmap
  5. Android利用drawable文件夹自定义控件背景、样式
  6. Android改变文件的权限

随机推荐

  1. 用 Hypothesis 来自动化单元测试
  2. Python_学习之流程控制
  3. Python_学习之运算符
  4. 课程学习记录之python迭代器和生成器
  5. 一个非常简单好用的 Python 图形界面库
  6. 我就是这样学 Python 的
  7. Docker | Docker技术基础梳理(八) - Dock
  8. Docker | Docker技术基础梳理(总结篇)附
  9. 零基础,从一个抢票程序,提升自己的Python技
  10. Flask | Web开发基础提要