您的位置:首页 > 理论基础 > 计算机网络

LayoutInflater中四种类型inflate方法的介绍

2012-05-01 00:01 375 查看


LayoutInflater中四种类型inflate方法的介绍

博客分类: 

Android

原文出自:网络 

第一种: 

public View inflate (int resource, ViewGroup root) 

reSource:View的layout的ID 

root:如果返回null,则将此View作为根,此时既可以应用此View中的其他控件了。 

          如果返回!null, 则将默认的layout作为View的根。 

第二种: 

public View inflate (XmlPullParser parser, ViewGroup root) 

parser:你需要解析xml的解析接口 

root:如果返回null,则将此View作为根,此时既可以应用此View中的其他控件了。 

          如果返回!null, 则将默认的layout作为View的根。 

第三种: 

public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot) 

parser:你需要解析View的xml的解析接口 

root:如果返回null,则将此View作为根,此时既可以应用此View中的其他控件了。 

          如果返回!null, 则将默认的layout作为View的根。 

attachToRoot: 

ture:也就将此解析的xml作为View根 

fase:则为默认的xml,做为根视图View 

第四种: 

public View inflate (int resource, ViewGroup root, boolean attachToRoot) 

resource:View的layout的ID 

root:如果返回null,则将此View作为根,此时既可以应用此View中的其他控件了。 

          如果返回!null, 则将默认的layout作为View的根。 

attachToRoot: 

ture:也就将此解析的xml作为View根 

fase:则为默认的xml,做为根视图View 

同时在此讲讲让我去API中去理解这四个函数的原因吧!嘿嘿!你肯定又会多学一招! 

在Activity中: 

大家是否知道,在setContentView(new MySurfaceView(this))后,此Activity中声明的View控件, 

如:TextView为什么引用不到layout布局文件中的控件ID呢!初一看能够应用到,但是为什么编译就报空指针呢!原因:在setContentView(new MySurfaceView(this))后,此时的View变为了根视图了,虽然能应用到TextView对应的ID,但是我在MySurfaceView中根本就没有这个对象,所以就报空指针咯!解决办法: 

View view = LayoutInflater.from(this).inflate(R.layout.passover, null);注:每解析一次都会产生不同的对象 

然后你再引用没问题,使用自如了。 

今天是咋们部门同事告诉我的,问题解决啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息