android View.inflate 空指针异常

view=View.inflate(context,R.layout.home_page,null);,debug显示就是这行是空的,view=null。为什么用infl... view = View.inflate(context, R.layout.home_page, null);,debug显示就是这行是空的,view=null。为什么用inflate会出现空指针异常,可能会哪出的问题,R.layout.xxx文件存在的,之前别的程序用这个也没出现空指针。
context也是存在的,不然也编译不过。
展开
 我来答
08物理
推荐于2018-03-23 · 知道合伙人软件行家
08物理
知道合伙人软件行家
采纳数:1141 获赞数:4137
1、国内上市公司资深运维工程师、产品经理 2、百度芝麻将,认证管理员

向TA提问 私信TA
展开全部
没为ViewPager第2个pager设置view所以报的空异常。

inflate控件加载注意空指针:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。

获得 LayoutInflater 实例的三种方式

1.LayoutInflater infalte=context.getSytemService(Context.LAYOUT_INFLATE_SERVICE);

2.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater()

3.LayoutInflater flater = LayoutInflater.from(this);

1、通俗的说,inflate就相当于将一个xml中定义的布局找出来.
因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.

View view = flater.inflate(R.layout.example, null);注意空指针,加判断

2. ViewGroup showView=(LinearLayout)View.inflate(context, R.layout.il_hall, null);
如何转型,为什么设置null,这样就返回控件,而不是root
第二步:
public View getView(){
//TODO:小心空指针异常
// 由于View.inflate(context, R.layout.il_hall, null); 给viewgroup的参数赋值 中间容器定义了RelativeLayout
if(showView.getLayoutParams()==null){
LogUtil.info(BaseView.class, "设置layout参数");
RelativeLayout.LayoutParams layoutParams=
new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
showView.setLayoutParams(layoutParams);
}
return showView;
};

inflate.inflate(int resource, ViewGroup root, boolean attachToRoot)

如果attachToRoot为false,就表示root只是提供个控件布局参数;如果attachToRoot是true,把这个view解析挂载到root中,返回这个root,;

如果root是null,返回值也是view,是xml的根节点。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐小小天
2015-02-10 · TA获得超过1453个赞
知道小有建树答主
回答量:839
采纳率:83%
帮助的人:764万
展开全部
View.inflate(context, R.layout.home_page, null);

layou = LayoutInflater.from(context);
你换下方法View view = layou.inflate(R.layout.home_page, null);
更多追问追答
追问

还是不行,

追答
自定义的adapter类中并没有把R文件import进去。因为R文件所在的package是和mainActivity包相同名字,但是和自定义adapter包不同

导入的是android.R而不是gen包中的那个R文件,所以导致找不到layout

看下是不是这两个原因
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式