如何使用以下谷歌语法在(列表视图的(getview中引用适配器:
fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
return (convertView ?: layoutInflater.inflate(R.layout.my_layout, parent, false)).apply {
// … bind content from position to convertView …
//personal comment : "this" does not refer to adapter
}
}
事实上,在.apply之后,我必须调用适配器才能生成adapter.notifyDataSetChanged()
。
用一个";"经典语法";,适配器可以被调用,这要归功于";这个";,这在谷歌语法中是不可能的。
"经典语法";
fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
....
//"this" (refers to adapter)
return convertView
}
那么,是否可以重写getview函数来在签名中添加变量呢?否则,我的问题怎么解决?
您应该使用.also { ... }
而不是.apply { ... }
如果我答对了你的问题,你可以:
编写与适配器相同的getView(...)
函数,带有附加参数
在适配器重写的getView(...)
中调用getView()
,根据需要传递参数。