界面 Inflater
[功能]
android 提供了一个工具 能够把int 的 *.xml 文件转化为 View 这就是XxxInflater 主要有2种:
* LayoutInflater
* MenuInflater
[使用]
1. 得到 LayoutInflater & MenuInflater 的实例
- MenuInflater mInflater = getMenuInflater();
- LayoutInflater lInflater = getLayoutInflater();
MenuInflater mInflater = getMenuInflater();
LayoutInflater lInflater = getLayoutInflater();
(需要补充的是:上述二者仅在 Activity 中才有效!)
2. 如何使用
* MenuInflater //比如现在有一个关于 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" />
- <item
- android:id="@+id/Item_2"
- android:title="Item_2" />
- <item
- android:id="@+id/Item_3"
- android:title="Item_3"
- android:enabled="false" />
- </menu>
<?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" />
<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 mInflater = getMenuInflater();
- mInflater.inflate(R.layout.menu_item, menu);
- return true;
- }
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.layout.menu_item, menu);
return true;
}
LayoutInflater // 和 MenuInflater 的使用基本类似 也是根据int 的 *.xml 文件得到 View 所不同的就是 嵌套原因 所以多了一个参数-ViewGroup 用来表示 父View 比如:在 LinearLayout layout 里面有一个 TextView 且其用tv.xml 描述 那么应该如下使用
- LayoutInflater iInflater = getLayoutInflater();
- iInflater.inflate(R.layout.tv,layout);