我有下面的ViewHolder类用于我的Recycler视图,
inner class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val dateText = itemView.itemDateSummaryList
private val systolicVal = itemView.systolicValue
private val diastolicVal = itemView.diastolicValue
fun update(listItem: SummaryListItemModel) {
Log.i(TAG, "Update method called " + listItem.date)
dateText.text = listItem.date
systolicVal.text = listItem.sysVal.toInt().toString()
diastolicVal.text = listItem.diasVal.toInt().toString()
}
}
但是当我运行应用程序时,在dateText.text = listItem.date
处出现错误,说:
java.lang.IllegalStateException: dateText must not be null
at *****.******.*****.ui.detailview.bloodpressure.SummaryListAdapter$ItemViewHolder.update(SummaryListAdapter.kt:68)
但是listItem.date
不是空的,我已经检查了日志。
9条答案
按热度按时间v8wbuo2f1#
该错误不是关于
listItem.date
,该错误说,该dateText
textview你试图设置文本是空的,仔细检查您使用的
textview
是否正确可能性:
**1)**您可能使用了错误的
id
或textview
**2)**您可能在放大视图时使用了错误的文件。
ctrl
+单击itemDateSummaryList
,查看textview
是否来自与infate
相同的布局文件8aqjt8rx2#
**如果使用分片:**1.使用将保存布局引用的全局变量
1.要使用布局中的任何视图,您可以将其与(
root.
)一起使用,如:root?.textView.text="Hello"
dly7yett3#
它说你的
dateText
视图本身是空的,而不是值listItem.date
验证你是否正确渲染它,itemview
具有你试图访问的id的TextView
9w11ddsr4#
在使用Fragment时,我也遇到了同样的问题,我从
onCreateView
中取出代码,并将其放入onViewCreated
方法中,问题解决了。huus2vyu5#
我得到这个错误我的片段,我解决了这个错误,
错误代码:
工作代码:
gg58donl6#
它也可能发生在xml文件中错误的上下文引用上,通常它出现在手动将Activity移动到另一个包时,Android studio没有自动进行此更改:
jpfvwuh47#
我读了所有这些答案,但没有一个对我有效,所以这里是我的答案。
找到与下面类似的代码行:
将光标放在
fragement_ProfileFragement
上,然后按CTRL单击。检查您是否在正确的 * fragment * XML文件中。ercv8c1e8#
我的RecyclerView也遇到了同样的问题。它已经工作了几个月。在无数次失败的故障排除步骤之后,我做了一个构建>清理项目,它修复了这个问题。
i2byvkas9#
您必须仔细查看,因为在代码的某些部分,您没有正确引用视图。换句话说,您的代码中不存在该特定视图。
1.试着重复你做过的步骤
1.在代码失败的类中检查视图是否正确膨胀。
这将保存你寻找错误的时间。