Android之inflate详解

我们常常会遇到这样的情况,函数setContentView(R.layout.XXX);指定一个xml文件作为该Activity的布局文件,这样,如果我们要操作该xml文件中的Button、ImageView、TextView等组件,就可以直接用:Button  btn = (Button)findViewById(R.id.button);这样是可以的,但是如果我们要操作的这些组件并不在setContentView函数里面指定的xml文件中,这个时候再用上面的方法就会报空指针错误。所以我们要用到inflater

 

        LayoutInflater的作用是将layout文件下的xml文件实例化为View对象,即调用inflate方法将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();
View layout = inflater.inflate(R.layout.main, null);


查看第二种方法的源码,实质上和第一种是一样。

public static LayoutInflater from(Context context) {
        LayoutInflater LayoutInflater =
                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (LayoutInflater == null) {
            throw new AssertionError("LayoutInflater not found.");
        }
        return LayoutInflater;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值