作用: 
1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入.

2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素.

方法: 
   Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.

其实在Activity里面就使用了LayoutInflater来载入界面, 通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个 LayoutInflater, 也可以通过LayoutInflater inflater = getLayoutInflater();来获得.然后使用inflate方法来载入layout的xml,

下面是一个简单的例子:
 
首先我们要知道,什么是已经被载入的layout,什么是还没有载入的.我们启动一个应用,与入口Activity相关的layout{常见的是main.xml}就是被载入的,即在Oncreate()中的.而其他的layout是没有被载入的.就要动态载入了或通过另一个activity.
 
在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件.
为了让大家容易理解我[转]做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。
代码如下:
package com.bivin;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
showCustomDialog();
}
public void showCustomDialog() {
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = MainActivity.this;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog, null);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, Welcome to Mr Wei's blog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
}
}

转载于:https://www.cnblogs.com/liubingna/p/3382158.html

LayoutInflater相关推荐

  1. Android LayoutInflater 的使用

    LayoutInflater 有三种实现方法 1 LayoutInflater inflater = LayoutInflater.from(context) 这种方法常用在弹框 2 LayoutIn ...

  2. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  3. Android中LayoutInflater的使用

    Inflater英文意思是膨胀,在Android中应该是扩展的意思吧. LayoutInflater 的作用类似于 findViewById(),不同点是LayoutInflater是用来找layou ...

  4. Android LayoutInflater原理分析,带你一步步深入了解View(一)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889 有段时间没写博客了,感觉都有些生疏了呢.最近繁忙的工作终于告一段落, ...

  5. Android 探究 LayoutInflater setFactory

    1.概述 对于LayoutInflater setFactory,平时我们很少用到这个API,但是这个API我觉得还是有学习的必要的,能够很多意象不到的问题,准备围绕这方面编写一系列的文章. 本篇包含 ...

  6. LayoutInflater.Factory 妙用

    LayoutInflater.Factory 可以调试 布局,你把下面的代码放到 onCreate里面,然后再里面的下面的onCreateView里面加上断点,然后你就可以知道所有的view构造,所有 ...

  7. 带你看懂LayoutInflater中inflate方法

    关于inflate问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东 ...

  8. Android LayoutInflater 源码解析

    在上篇文章中我们学习了setContentView的源码,还记得其中的LayoutInflater吗?本篇文章就来学习下LayoutInflater. @Overridepublic void set ...

  9. Android数据填充器LayoutInflater

    LayoutInflater类在应用程序中比较实用,可以叫布局填充器,也可以成为打气筒,意思就是将布局文件填充到自己想要的位置,LayoutInflater是用来找res/layout/下的xml布局 ...

  10. LayoutInflater用法小结

    学习BaseAdapter时遇到了LayoutInflater,百度了其用法~总结如下 LayoutInflater的用法与findViewById()类似,通常用来将xml文件生成对应的View对象 ...

最新文章

  1. 2020移动apn接入点哪个快_为什么都是4G网你的就没别人快?跟我这样设置,网速直线提升...
  2. 深入浅出UML类图(四)
  3. 0603贴片电阻阻值对照表_怎样读贴片电阻阻值
  4. csv 文件驱动的 jMeter 并发测试
  5. java继承的举例_java继承实例
  6. 服务器租用单线、双线、bgp 相比有哪些区别优势?
  7. Greenplum5单机部署连接报错 System was started in master-only utility mode问题修复
  8. Facebook 开启元宇宙模式!豪砸百亿是为什么?
  9. 计算机硬件教学设计高中信息,重大版信息技术七上《计算机硬件系统》教学设计.doc...
  10. db2关闭下一句sql的日志_MySQL查询优化(3)-慢查询开启、日志分析
  11. 【报告分享】2022中国女性内衣行业研究报告.pdf(附下载链接)
  12. 计算机信息安全管理大作业,《信息安全大作业》.doc
  13. 服务器实体机与虚拟机,八种虚拟机与实机之间数据交互的方法|虚拟机与实体机之间的互连与数据交换方法...
  14. 神武3很遗憾未能链接服务器,12月8日神武3维护解读 wuli滔滔进驻新服!
  15. 物联网的新危机!即将到期的SSL证书可能会影响……
  16. 外星人冯诺依曼【转】
  17. 【NOI2015 Day1】软件包管理器
  18. 用R语言画切线和法线
  19. 广州大学计算机投档分数线,2021年广州大学最低投档分数线及录取位次
  20. 51单片机:数码管(静态+动态)

热门文章

  1. (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
  2. hp RAID卡 命令行管理
  3. 不同编码页引用同一个css文件
  4. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  5. endnote按照apa6th格式复制_使用Endnote进行文献引用
  6. c++gdal如何在大图像中截取小图像并获取其图像信息_如何模拟不规则形状并构建几何模型
  7. jsp跨域访问cookies_cookie 跨域访问的解决方案
  8. java 获取mac地址_java入门知识点和环境准备
  9. 安装虚拟机(二)配置静态ip
  10. 【渝粤题库】陕西师范大学180213《消费经济学》作业 (高起本)