栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么findViewById()在这里不能作为getActivity()。findViewById()使用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么findViewById()在这里不能作为getActivity()。findViewById()使用?

在这段代码中,当我使用TextView text =(TextView)getActivity()。findViewById(R.id.text1)

然后我的应用程序崩溃了,Logcat说这是由以下原因引起的:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法’android.view.View
android.view.Window.findViewById(int)’

findViewById()
上的
Activity
从根视图(所谓的“装饰视图”)和横穿可用的小部件和容器,寻找一个ID匹配的树开始。因此,
findViewById()
在上调用
Activity
只会发现属于整体活动视图层次结构的视图。

但是,您的

inflate()
呼叫不会将膨胀的内容附加
RelativeLayout
到活动视图层次结构。这是预期的。当片段本身被附加时,这些视图将被附加到活动视图层次结构中
onCreateView()
。结果,当您
从内部 调用
findViewById()
活动
onCreateView()
,它找不到您的
TextView
,因为该活动
TextView
仅由片段管理,还不是活动视图层次结构的一部分。

findViewById()
View
ViewGroup
从开始
View
ViewGroup
与横梁可用的widget和容器,找一个ID匹配的树。在
RelativeLayout
访问你的
TextView
,所以当你打电话
findViewById()
RelativeLayout
,你膨胀,它的工作原理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号