1
我想覆蓋ListView的子類中的方法setAdapter。 setAdapter定義爲在ListView的子類中重寫setAdapter
void setAdapter(T adapter);
在AdapterView類中。 AdapterView類是泛型類AdapterView
上述聲明不適用於ListView子類,因爲類型變量不可用,但我不知道如何將類型變量引入子類。任何具體類型都不起作用。
我想覆蓋ListView的子類中的方法setAdapter。 setAdapter定義爲在ListView的子類中重寫setAdapter
void setAdapter(T adapter);
在AdapterView類中。 AdapterView類是泛型類AdapterView
上述聲明不適用於ListView子類,因爲類型變量不可用,但我不知道如何將類型變量引入子類。任何具體類型都不起作用。
確實,AdapterView
使用泛型類型參數,但ListView
和GridView
指定類型必須是ListAdapter
。所以,你可以這樣做:
@Override
public void setAdapter(ListAdapter adapter) {
// ...
}
這是因爲ListView
的父類,AbsListView
,擴展AdapterView<ListAdapter>
:
public abstract class AbsListView extends AdapterView<ListAdapter> { ... }
這意味着T
是ListAdapter
無處不它在ListView
使用。
是的,我應該看看AbsListView源代碼。 Android文檔很混亂,它說:AbsListView擴展了AdapterView –