我們在專案中經常需在乙個listview中展示不一樣的布局,我們可以在adapter的getview()中根據position來決定該展示哪些布局。
viewholder viewholder = newviewholder();
if (view == null
) else
//下面這裡執行相應的操作,舉乙個例子
viewholder.textcate.settext("a")
可是這時候問題來了,滑動到下面的時候報錯:找不到元件textcate
苦思良久,最終我是這樣分析的:
listview的item會復用,也就是滑動到下面的時候,下面的item會復用第乙個item,也就是,然後**在判斷view == null的時候不成立,於是執行
viewholder = (viewholder) view.gettag();
而我們沒有給設定tag,取出來的當然為空,因此下面會報空指標。
有什麼覺方法呢?
if (view == null || view.gettag() == null)
ListView多布局展示
實現 adapter的 其中 viewholder分別是三個不同的布局,也就是listview中每一項的布局 type 1 是幾種型別.在使用不同布局的時候,getitemviewtype和getviewtypecount不能少,一般的同一種item的列表是不用這兩個函式的過載的,但是如果需要不同種...
ListView顯示不同布局
在使用不同布局的時候,getitemviewtype和getviewtype不能少,通常是不用這兩個函式的過載的 listview.setadapter new baseadapter override public int getitemviewtype int position if posit...
ListView的每個Item都不同布局
listview用的很頻繁,有時候會要求乙個listview中會有不同的布局存在 繼承baseadapter可以實現這樣的功能 除了常寫的那幾個方法外,還要重寫下面幾個方法 getviewtypecount 這個返回listview中需要返回幾種布局,這樣事先就要統計好布局種類 getitemvie...