2013-05-22 60 views
0

我看到getView實現,直接使用convertView參數:Android Adapter getView方法:調用super.getView或不?

if(convertView!=null) 
    ... 
return convertView 

另一種實現來電super.getView:

View view = super.getView(position, convertView, parent); 
if(view!=null) 
    ... 
return view 

我的問題是,什麼是正確的方法是什麼?

回答

1

我猜你是在談論Adapter.getView()。你在擴展哪個適配器?

大多數適配器本身並沒有實現getView(),並且希望在自己膨脹視圖之前檢查convertView是否爲null。

我說大多數適配器,因爲有例外。如果您從第三方子適配器-lib適配器可能實際上提供getView()的實現和處理視圖回收。在這種情況下,你真的應該打電話給超級班。

另外,如果你看一看the codeCursorAdapter它實際上有getView的實現()

+0

謝謝。我沒有製作真正的代碼。這是一個普遍的問題,要了解更多關於getView的知識,而不是理解爲什麼不使用簡單的複製和粘貼代碼。 – juan

+0

啊,好吧,如果這是一個普遍問題,那麼不,你不應該調用super.getView()。你應該檢查convertView是否爲null,如果是,你應該膨脹一個新的視圖,否則重用你擁有的視圖。適配器最常見的用途可能是BaseAdapter或ListAdapter,在這兩種情況下,您都不應該調用super.getView() – britzl

+0

再次感謝... – juan

2

the super.getView(position, convertView, parent);因爲super什麼都不做,所以是不完整的。

getView屬於Adapter接口。

here你可以找到的代碼

+0

謝謝,我改問題的稱號了。 – juan

+0

打電話與否沒有任何區別。 – Blackbelt

+0

這取決於適配器不是嗎?如果它是標準適配器之一,則沒有關係,因爲沒有實現可以談論,但對於第三方庫或CursorAdapter實際上是這樣。 – britzl

相關問題