文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android中findViewById返回为空null的快速解决办法

2022-06-06 08:16

关注

【问题描述】

Android中如下代码:


LinearLayout groupPollingAddress = (LinearLayout)findViewById(R.layout.fragment_field_list);

返回为null。

【解决过程】

1.参考:

android – getActivity().findViewById(R.layout.contacts_list_view) returns null – Stack Overflow

AndroidGUI27中findViewById返回null的快速解决办法 – 玄机逸士的专栏 – 博客频道 – CSDN.NET

但是没搞定。

2.后来是去搜:

findViewById R.layout null

而最终找到并参考:

[Android]inflate方法与 findViewById 方法区别 | LayoutInflater的inflate函数用法详解 – loyea – 博客园

去换为:

LayoutInflater inflater = (LayoutInflater)tabContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout groupPollingAddress = (LinearLayout)inflater.inflate(R.layout.fragment_field_list, null);

即可。

3.另外的,类似的:

TextView tab1AllGroupPollingAddressLabel = (TextView) findViewById(R.id.lblVariable);

也是返回null,所以去换为:

TextView tab1AllGroupPollingAddressLabel = (TextView) groupPollingAddress.findViewById(R.id.lblVariable);
即可。

【总结】

此处findViewById返回为null,原因是:

没有在索要find的子view的Parent中去找

或者是:

当然的View下面,没有包含对应的想要找的view,

从而导致找不到,返回null。

解决办法是:

找到要找的view的parent或root的view

再在父级的view中找你要的子view就可以了。

常见的写法是:


LayoutInflater inflater = (LayoutInflater)tabContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout groupPollingAddress = (LinearLayout)inflater.inflate(R.layout.fragment_field_list, null);

其中是先去找到当前系统的Layout,然后实例化,然后在全局的view中再去找你的view就可以找到了。

PS:Android 自定义view中findViewById为空的快速解决办法

网上说的都是在super(context, attrs);构造函数这里少加了一个字段,其实根本不只这一个原因,属于view生命周期的应该知道,如果你在自定义view的构造函数里面调用findViewById 铁定为空的,因为这个时候view还在初始化阶段,还没有添加到activity的XML布局上,所以你怎么调用都是没用的,解决办法就是把我们的findViewById方法换一个生命周期上面调用就OK了,比如我就是在


 protected void onAttachedToWindow() {
super.onAttachedToWindow();} 

上面调用的

您可能感兴趣的文章:Android中findViewById获取控件返回为空问题怎么解决android getActivity.findViewById获取ListView 返回NULL的方法


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯