ArrayAdapter使用Kotlin android
SoI正在学习kotlin,现在我需要编写一个ArrayAdapter,但我在尝试这样做时出现了一些错误:ArrayAdapter使用Kotlin android,android,android-arrayadapter,kotlin,Android,Android Arrayadapter,Kotlin,SoI正在学习kotlin,现在我需要编写一个ArrayAdapter,但我在尝试这样做时出现了一些错误: convertView = vi.inflate(resource, null) 科特林在告诉我 无法重新分配Val 在站点kotline中,我将java类转换为kotlin类,并尝试在该站点中这样做。为什么会出现错误?我如何修复此错误?这是全部代码 open class MyAdapter(context: Context, resource: Int, list: ArrayLis
convertView = vi.inflate(resource, null)
科特林在告诉我
无法重新分配Val
在站点kotline中,我将java类转换为kotlin类,并尝试在该站点中这样做。为什么会出现错误?我如何修复此错误?这是全部代码
open class MyAdapter(context: Context, resource: Int, list: ArrayList<MyItems>) :
ArrayAdapter<MyItems>(context, resource, list) {
var resource: Int
var list: ArrayList<MyItems>
var vi: LayoutInflater
init {
this.resource = resource
this.list = list
this.vi = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
var holder: ViewHolder
if(convertView == null){
convertView = vi.inflate(resource, null) //error in this line
holder = ViewHolder()
holder.image = convertView.findViewById(R.id.myImage) as ImageView?
convertView.tag(holder) //error in this line
} else {
holder = convertView.tag as ViewHolder
}
return convertView
}
internal class ViewHolder {
var image: ImageView? = null
}
}
打开类MyAdapter(上下文:context,资源:Int,列表:ArrayList):
ArrayAdapter(上下文、资源、列表){
变量资源:Int
变量列表:ArrayList
var vi:平放机
初始化{
this.resource=resource
this.list=list
this.vi=context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE)作为LayoutInflater
}
覆盖视图(位置:Int,convertView:View?,父级:ViewGroup):视图{
var持有者:视图持有者
if(convertView==null){
convertView=vi.inflate(resource,null)//此行出错
holder=ViewHolder()
holder.image=convertView.findViewById(R.id.myImage)是否作为ImageView?
convertView.tag(holder)//此行出错
}否则{
holder=convertView.tag作为ViewHolder
}
返回转换视图
}
内部类视窗夹{
变量图像:ImageView?=null
}
}
无法重新分配参数变量,您需要创建一个局部变量来保存返回的视图:
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
var holder: ViewHolder
var retView: View
if(convertView == null){
retView = vi.inflate(resource, null)
holder = ViewHolder()
holder.image = retView.findViewById(R.id.myImage) as ImageView?
retView.tag = holder
} else {
holder = convertView.tag as ViewHolder
retView = convertView
}
return retView
}