我正在为我的listview创建一个自定义的arrayAdapter,但是像我的超级构造函数这样简单的事情把我搞砸了!
private ArrayAdapter<ScheduleTime> timeHold;
//make proper constructor, see use ticket types
public TimeTableAdapter(Context context, int textViewResourceId,
ArrayAdapter<ScheduleTime> timesTable) {
super(context, textViewResourceId, timesTable);
this.timeHold = timesTable;
}
我得到super
行上的错误:
super(context, textViewResourceId, timesTable);
The constructor SimpleAdapter(Context, int, ArrayAdapter<ScheduleTime>) is undefined
我在这里错过了什么?上面的构造函数显然包含了所有这些元素
仅仅因为您定义的构造函数接受某个参数列表,并不意味着父类具有该构造函数。毕竟,您可以为构造函数定义任意的参数列表。
你试图调用的超级构造函数最接近ArrayAdapter类中的构造函数,但错误信息表明你试图继承SimpleAdapter。你理解对了吗?如果是ArrayAdapter,最后一个参数必须是支持该适配器的对象的数组(或列表),而不是该类型的单个对象。
如果是SimpleAdapter,则唯一的构造函数是这里,它看起来有点不同
super
用于调用父类的构造函数,即您要扩展的类。查看文档:SimpleAdapter
的构造函数有不同的参数。