覆盖ListView子类中的setAdapter

时间:2013-10-26 21:39:41

标签: java android

我正在尝试在ListView的子类中覆盖方法setAdapter。 setAdapter定义为

void setAdapter(T adapter);
在AdapterView类中

。 AdapterView类是通用类AdapterView

上面的声明对ListView子类不起作用,因为类型变量不可用,但我不明白如何将类型变量引入子类。任何具体类型都不起作用。

1 个答案:

答案 0 :(得分:1)

AdapterView确实使用泛型类型参数,但ListViewGridView指定类型必须是ListAdapter。所以你可以这样做:

@Override
public void setAdapter(ListAdapter adapter) {
    // ...
}

这是因为ListView的父类AbsListView扩展了AdapterView<ListAdapter>

public abstract class AbsListView extends AdapterView<ListAdapter> { ... }

这意味着TListAdapter中使用的任何地方都是ListView