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

原文来自:http://blog.csdn.net/aa4790139/archive/2011/05/07/6401556.aspx

第一种:
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);
然后你再引用没问题,使用自如了。
今天是咋们部门同事告诉我的,问题解决啦!
如果上面四个函数有理解偏差,欢迎大家指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值