有时在Fragment视图中获取IllegalStateException表示视图不能为null,为什么?

问题描述 投票:0回答:1

是,我已将视图访问权限写在onViewCreated内。所以有时候会显示

IllegalStateException: view must not be null

如果我在清理项目后立即运行,它将正常工作,没有任何错误!!!

混淆!

另一个令人困惑的问题是,如果我在onViewCreated内部使用视图

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {myTextView.text = "MyName"}

工作正常

但是如果在翻新呼叫的onResponse中分配它]

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    netWorkCallByRetrofit()
} 

netWorkCall(){
   myTextView.text = "MyName"
}

它不起作用。如果我在清理项目后立即运行,它将正常工作而没有任何错误!!!如果在onViewCreated中对其进行初始化,则它再次运行良好像

tv: TextView
tv = myTextView
tv.text = "MyName"

正在运行!!

任何线索?

是,我已将视图访问权限写在onViewCreated内。因此,有时它显示IllegalStateException:如果我在清理项目后运行,则视图不能立即为null,它可以在没有...

android android-fragments kotlin
1个回答
0
投票

在一个片段中,始终引用您在onCreateView中返回的视图。我倾向于在片段主体中创建一个private var thisView: View? = null,然后在onCreateView中将其分配给您要返回的视图。片段的其余部分始终引用,例如thisView.myTextView.text,并且您不应再有奇怪的nullpointer错误。一些代码可能会使混乱程度降低:

© www.soinside.com 2019 - 2024. All rights reserved.