Android 是什么导致此线性布局投射错误?
在之前专门使用Java之后,我正在学习Kotlin,我遇到了一个令人困惑的错误,似乎无法修复 我试图实现一个Android 是什么导致此线性布局投射错误?,android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,在之前专门使用Java之后,我正在学习Kotlin,我遇到了一个令人困惑的错误,似乎无法修复 我试图实现一个回收视图,但我所做的每一个努力都失败了。我甚至从中复制\粘贴了代码,以查看我做错了什么,结果遇到了相同的问题。在这一点上已经过了好几个小时了,我被难住了 为什么我会从直接来自开发人员页面的代码中得到此错误\n如何修复它? MyAdapter.kt 导入android.view.LayoutInflater 导入android.view.ViewGroup 导入android.widget.
回收视图
,但我所做的每一个努力都失败了。我甚至从中复制\粘贴了代码,以查看我做错了什么,结果遇到了相同的问题。在这一点上已经过了好几个小时了,我被难住了
为什么我会从直接来自开发人员页面的代码中得到此错误\n如何修复它?
MyAdapter.kt
导入android.view.LayoutInflater
导入android.view.ViewGroup
导入android.widget.LinearLayout
导入android.widget.TextView
导入androidx.recyclerview.widget.recyclerview
类MyAdapter(专用val myDataset:数组):
RecyclerView.Adapter(){
//提供对每个数据项的视图的引用
//复杂数据项可能需要每个项有多个视图,并且
//您可以访问视图保持架中数据项的所有视图。
//在本例中,每个数据项只是一个字符串,显示在TextView中。
类MyViewHolder(val textView:textView):RecyclerView.ViewHolder(textView)
//创建新视图(由布局管理器调用)
在CreateViewHolder(父级:ViewGroup,
viewType:Int):MyAdapter.MyViewHolder{
//创建新视图
val textView=LayoutInflater.from(parent.context)
.将(R.layout.my_text_view,parent,false)充气为文本视图
//设置视图的大小、边距、填充和布局参数
返回MyViewHolder(文本视图)
}
//替换视图的内容(由布局管理器调用)
覆盖onBindViewHolder(holder:MyViewHolder,位置:Int){
//-在此位置从数据集中获取元素
//-用该元素替换视图的内容
holder.textView.text=myDataset[位置]
}
//返回数据集的大小(由布局管理器调用)
重写getItemCount()=myDataset.size
}
来自logcat的错误
java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView
R.layout.my_text\u view
的根布局可能是LinearLayout
(您也应该发布布局文件)。您正在膨胀布局并将根视图强制转换为TextView
你应该在布局中使用
val rootView = LayoutInflater.from(parent.context).inflate(R.layout.my_text_view, parent, false)
然后使用以下内容获取此布局中的TextView
引用
val textView = rootView.findViewById<TextView>(R.id.[your-textview-id])
val textView=rootView.findViewById(R.id.[您的textView id])
是的,就是这样!谢谢
val textView = rootView.findViewById<TextView>(R.id.[your-textview-id])