在之前专门使用 Java 工作后,我正在学习 Kotlin,但我遇到了一些似乎无法修复的令人困惑的错误。
我试图实现 a RecyclerView,但我所做的一切努力都失败了。我什至从开发人员页面复制\粘贴代码以查看我做错了什么,只是遇到了同样的问题。在这一点上已经有几个小时了,我很难过。
为什么我从直接来自开发页面的代码中收到此错误\如何修复它?
我的适配器.kt
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class MyAdapter(private val myDataset: Array<String>) :
RecyclerView.Adapter<MyAdapter.MyViewHolder>() {
// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view holder.
// Each data item is just a string in this case that is shown in a TextView.
class MyViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
// Create new views (invoked by the layout manager)
override fun onCreateViewHolder(parent: ViewGroup,
viewType: Int): MyAdapter.MyViewHolder {
// create a new view
val textView = LayoutInflater.from(parent.context)
.inflate(R.layout.my_text_view, parent, false) as TextView
// set the view's size, margins, paddings and layout parameters
return MyViewHolder(textView)
}
// Replace the contents of a view (invoked by the layout manager)
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
holder.textView.text = myDataset[position]
}
// Return the size of your dataset (invoked by the layout manager)
override fun getItemCount() = myDataset.size
}
来自 logcat 的错误
java.lang.ClassCastException: android.widget.LinearLayout 不能转换为 android.widget.TextView