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
分享到:
相关推荐
Android inflater 是 Android 开发中的一种非常有用的工具类,类似于 findViewById()。它的主要作用是将 XML 布局文件实例化,并将其转换为 View 对象,以便在 Activity 中使用。 Android inflater 的用法可以分为...
Android中LayoutInflater.inflater()的正确打开方式 LayoutInflater是Android中用于加载布局文件的核心类,通过LayoutInflater的inflate()方法可以将布局文件加载到内存中,并返回对应的View对象。但是,很多开发者...
在Android应用开发中,"加载中效果"是用户体验设计中的一个重要元素,它通常用于提示用户应用程序正在处理数据或执行后台任务。"加载中"界面可以让用户知道应用并未卡死,而是正在进行必要的工作,从而提高用户的...
在Android应用开发中,`Menu`是用户界面中不可或缺的一部分,它通常用于在特定操作(如选项、更多操作)上为用户提供快捷访问的途径。在Android系统中,`Menu`通常出现在活动(Activity)的顶部作为选项菜单,或者在...
在Android应用开发中,ListView是一种常用的控件,用于展示大量数据列表。它的可滚动特性使得它在各种场景下都非常实用,比如展示联系人、菜单项等。然而,仅仅使用ListView来展示列表数据并不足够,很多时候我们...
在Android开发中,有时我们需要创建具有独特视觉效果的对话框(Dialog)来增强用户体验,比如一个正在加载数据时显示的“菊花”(菊花通常代表加载动画)。本篇将详细讲解如何在Android项目中实现这样一个自定义的...
在Android开发中,动态地更改View的背景是一个常见的需求,特别是在实现应用主题切换或夜间模式功能时。这个过程涉及到对Android UI组件的理解、资源管理以及编程技巧。下面将详细讲解如何在Android应用中实现动态...
在Android开发中,有时我们需要在应用中展示二维码以便用户快速扫描。这个场景可以通过在Dialog组件中显示二维码来实现,提供一种简洁且不打扰用户主界面的方式。本文将深入讲解如何在Android的Dialog中生成并显示...
在Android开发中,XML布局是构建用户界面的主要方式。`<include />`标签是一个非常实用的功能,它允许我们将一个XML布局文件嵌入到另一个布局文件中,实现代码的复用和模块化。这个Demo将详细解释如何使用`...
在Android应用开发中,Fragment是Android SDK提供的一种组件,它允许开发者在单个Activity中创建多个可重用的用户界面部分。Fragment的概念引入是为了更好地适应多屏幕设备,使得UI可以根据不同设备尺寸动态调整。在...
在Android开发中,Dialog是一种非常重要的UI组件,用于在用户界面中显示临时信息或与用户进行交互。"Android中Dialog从底部划入"这个话题主要关注如何实现一个自定义的Dialog,使其从屏幕底部动画滑出,提升用户体验...
1.首先在AndroidManifest.xml中添加使用权限: uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 2.二行代码实现自定义弹窗view View contentView = inflater.inflate(R.layout.layout_...
在Android开发中,LayoutInflater是一个非常关键的工具,它主要用于将XML布局文件转换为视图对象。这个过程称为“实例化”或“.inflate”。通过LayoutInflater,我们可以动态地在运行时加载和插入用户界面元素,这...
在Android开发中,长按(Long Press)是一种常见的用户交互方式,它允许用户在界面上对某一元素执行额外的操作。通常,长按会触发一个弹出菜单(PopupMenu),展示一系列可选择的动作。本教程将详细讲解如何在...
本文将详细介绍如何在Android应用中实现带有输入框的Dialog,并讲解如何正确地从这些输入框中获取数据。 #### 二、准备工作 为了确保能够顺利实现所需功能,我们需要先完成以下准备工作: 1. **创建项目**:在...
在Android开发中,窗体布局是构建用户界面的基础。`Inflate`是Android系统中用于将XML布局文件转换为视图对象(View)的过程,它允许开发者通过XML定义UI元素,然后在运行时动态加载这些元素。这篇博客“使用...
在Android开发中,复制和粘贴是用户交互中常见的功能,尤其在文本处理或编辑场景中更为重要。这个Demo主要展示了如何在Android应用中实现这一功能。以下将详细讲解实现这些功能的关键步骤和相关知识点。 首先,...
在Android开发中,ListView是一种非常重要的控件,用于展示大量数据列表。它的每个Item(列表项)通常由一个布局资源文件XML定义,这样可以灵活地设计每个列表项的外观和内容。下面我们将深入探讨如何使用XML文件来...
在Android开发中,PopupWindow是一种常用的轻量级组件,它可以在屏幕任意位置弹出一个窗口,通常用于实现快捷菜单、下拉列表等效果。在本示例中,我们将探讨如何利用PopupWindow模仿iOS中的底部弹窗列表,为用户提供...