我要创建一个扩展BaseAdapter的适配器,如下所示:
class TestAdapter: BaseAdapter() {
var mData:LinkedList<String>?=null
var mContext:Context?=null
constructor(mData: LinkedList<String>?, mContext: Context?) : super() {
this.mData = mData
this.mContext = mContext
}
Blablabla…….
}
但是AS给我一个错误消息:没有主构造函数就无法进行超类型初始化。
答案 0 :(得分:2)
您似乎只希望TestAdapter
有一个构造函数(一个带有参数的构造函数),对吗?如果是这样,您应该重新编写它,并将参数作为类声明的一部分,而不是使用单独的constructor
,例如:
class TestAdapter(mData: LinkedList<String>?, mContext: Context?) : BaseAdapter()
相反,如果您希望TestAdapter
有两个构造函数(一个没有参数,一个带有参数),那么您需要执行以下操作:
class TestAdapter() : BaseAdapter() {
constructor(mData: LinkedList<String>?, mContext: Context?) : this() {
// ...
}
}
答案 1 :(得分:0)
使用this()代替super()。因为BaseAdapter()已在类
中扩展import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import java.util.*
class TestActivity() : BaseAdapter() {
var mData: LinkedList<String>?=null
var mContext: Context?=null
constructor(mData: LinkedList<String>?, mContext: Context?) : this() {
this.mData = mData
this.mContext = mContext
}
}