无法继承和覆盖ArrayAdapter

时间:2016-07-16 08:04:35

标签: android android-studio

我正在尝试构建一个自定义ArrayAdapter,它会覆盖默认ArrayAdapter的构造函数,如下所示:

private class MyEndpointAdapter extends ArrayAdapter<Endpoint> {

但我收到错误说:

There is no default constructor available in 'android.widget.ArrayAdapter'

我决定检查ArrayAdapter的声明并发现它导入的某些类无法解析

http://i.stack.imgur.com/tauGr.png

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果没有显式提供构造函数,编译器将为您创建一个默认构造函数,它将调用超类的no-arg构造函数。

由于ArrayAdapter没有no-arg构造函数,显然无法进行此调用,因此错误。

您需要显式定义一个从超类调用构造函数的构造函数,例如:

private class MyEndpointAdapter extends ArrayAdapter<Endpoint> {

    public MyEndpointAdapter(Context context, @LayoutRes int resource, List<Endpoint> objects) {
        super(context, resource, objects);
    }
}