Android inflate方法与 findViewById 方法区别
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
具体作用:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
获取LayoutInflater的方法有如下三种:
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.main, null);LayoutInflater inflater = LayoutInflater.from(context); (该方法实质就是第一种方法,可参考源代码) View layout = inflater.inflate(R.layout.main, null);LayoutInflater inflater = getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数) View layout = inflater.inflate(R.layout.main, null);
注意:
·inflate方法与 findViewById 方法不同;
·inflater 是用来找 res/layout下的 xml 布局文件,并且实例化;
·findViewById() 是找具体 xml 布局文件中的具体 widget 控件(如:Button、TextView 等)。
---------------------------------------------------------------------------
setContentView和inflate的区别
一直有点纠结setContentView和inflate的区别找了一些资料。写了个小程序看了下:
public class MyInflate extends Activity{private TextView tv;public void OnCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.main);//tv = (TextView) findViewById(R.id.tv); LayoutInflater inflate = LayoutInflater.from(this);View view = inflate.inflate(R.layout.main,null);setContentView(view);} }
上述注释掉的代码和没有注释掉的代码两种情况是相同的。
区别:
setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要LayoutInflater动态加载。
public View inflate(int Resourece,ViewGroup root)
作用:填充一个新的视图层次结构从指定的XML资源文件中
reSource:View的layout的ID
root: 生成的层次结构的根视图
return 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。
其余几个重载的inflate函数类似。
参考:
1. http://www.open-open.com/lib/view/open1328837587484.html
2. http://www.cnblogs.com/shitianzeng/articles/2323427.html
转自:http://www.cnblogs.com/loyea/archive/2013/04/27/3047248.html
Android inflate方法与 findViewById 方法区别相关推荐
- Android Handler中post方法与send方法的区别及使用
目录 概述 Handler使用sendMessage方法 Handler使用post方法 post方法与send方法的区别 全部代码 效果图 后记 概述 Handler机制是Android中线程通信的 ...
- LayoutInflater——inflate方法不同参数的区别
LayoutInflater有两个参数inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot),inflate(XmlPu ...
- android activity查询,android中activity.findViewById()方法查找的是什么?
//代码1: package com.example.testsdk2; import android.app.Activity; import android.content.Intent; imp ...
- Android之ContextMenu的使用方法以及与OptionMenu的区别
>> ContextMenu是android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来.比如EditeText就可以通过长按来弹出拥有" ...
- Android学习:自定义ViewGroup方法总结
毕设应用中需要添加一个滑动按钮,在网上看了几个Demo之后决定自定义ViewGroup来实现. 这里是对实现过程中自定义ViewGroup的方法总结. 关于ViewGroup,文档给出的描述是: A ...
- Android自定义View的实现方法,带你一步步深入了解View(四)
不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,算是把View中很多重要的知识 ...
- Android自定义View的实现方法,带你一步步深入了解View
如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件.组合控件.以及继承控件.那么下面我们就来依次学习一下,每种方式分别是如何自定义View的. 一.自绘控件 自绘控件的意思就 ...
- android自定义view的实现方法,Android自定义View的实现方法
一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需要简单几行代码就可以完成了. 如果说要按类型来划分的话,自定义Vi ...
- Android中bindService的使用方法
一.android service简介 1.Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序. 2. ...
最新文章
- centeos7安装mariadb
- MYSQL数据库从A表把数据插入B表
- 不展现报表实现对报表的打印导出
- asp.net控件库FineUI使用入门图解
- Springboot 连接数据库
- 《SAP 传奇人物》系列人物故事:看透生死远没有操作0和1那么简单
- 软件质量包括哪些特性?软件质量保证的主要任务是什么?
- 大并发下Timeout waiting for connection from pool 解决方案
- ddr老化测试_手把手教你评估和测试固态存储【深度】
- 断网情况下,前端页面处理
- 实战:使用python爬取新冠疫情国内外最新数据
- 深蓝学院-视觉SLAM课程-第4讲作业(T5矩阵微分,T6手写高斯牛顿,T7批量MLE)
- c语言程序设计对称数,对称数 问题
- 【Android 你的SurfaceView休眠了吗】
- simulink子模块上插入图片
- VS.NET 2003简体中文版下载
- Vulnhub靶机DC系列-DC-8
- 最经典的黑客入门教程
- PyOpenGL代码实战(五):纹理
- DUX主题顶部彩条美化
热门文章
- commons-lang3之StringUtils
- 关于笔记本安装parrot和kali的一些问题(花屏,息屏,屏幕不能休眠)
- BufferedInputStream
- SpringAop对struts2的Action设置切面织入时报错java.lang.NoSuchMethodException
- 【转】Javascript面向对象编程(二):构造函数的继承
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
- 得到src目录下的properties文件属性
- SYN 攻击原理以及防范技术
- 发现一个很不错的正则表达式生成器
- step4 . day7 进程间的通信方式