为啥 binding.myTextView 返回一个 TextView?而不是 TextView

Posted

技术标签:

【中文标题】为啥 binding.myTextView 返回一个 TextView?而不是 TextView【英文标题】:Why binding.myTextView returns a TextView? and not TextView为什么 binding.myTextView 返回一个 TextView?而不是 TextView 【发布时间】:2021-10-05 05:02:38 【问题描述】:

在名为activity_main.xml 的布局中,我有两个TextView。我可以使用变量从我的 MainActivity 访问它

binding = ActivityMainBinding.inflate(layoutInflater)

这样:

binding.textView1
binding.textView2

在我的代码中 binding.textView1 返回一个对象 TextView 但第二个返回一个对象 TextView?

这迫使我使用 ?. 运算符访问第二个 TextView

binding.textView2?.text = "HelloWorld"

因为使用. 运算符会导致错误

Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type TextView?

那么问题是有一种方法可以在我的布局中定义一个不可为空的视图吗?两个具有相同属性的对象怎么可能有不同的行为?

【问题讨论】:

也许发布你的activity_main.xml? 【参考方案1】:

该对象可以为空,因为它并非出现在所有 XML 布局中,因此在某些布局中它为空。

【讨论】:

以上是关于为啥 binding.myTextView 返回一个 TextView?而不是 TextView的主要内容,如果未能解决你的问题,请参考以下文章

为啥 editActionsForRowAt 返回很多图像而不是一张图像?

为啥这不会一遍又一遍地返回一个新值?爪哇

为啥 uitextfield 在成为第一响应者时从不返回 nil?

为啥此 LINQ 表达式返回只有一项的子列表

mybatis执行一条update语句时为啥会返回

为啥 array_pop() 返回数组的最后一项而不是删除它? [关闭]