2013-10-26 45 views
1

我想覆蓋ListView的子類中的方法setAdapter。 setAdapter定義爲在ListView的子類中重寫setAdapter

void setAdapter(T adapter); 

在AdapterView類中。 AdapterView類是泛型類AdapterView

上述聲明不適用於ListView子類,因爲類型變量不可用,但我不知道如何將類型變量引入子類。任何具體類型都不起作用。

回答

1

確實,AdapterView使用泛型類型參數,但ListViewGridView指定類型必須是ListAdapter。所以,你可以這樣做:

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

這是因爲ListView的父類,AbsListView,擴展AdapterView<ListAdapter>

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

這意味着TListAdapter無處不它在ListView使用。

+0

是的,我應該看看AbsListView源代碼。 Android文檔很混亂,它說:AbsListView擴展了AdapterView

相關問題