listview的adapter的作用如下圖所示:
adapter的作用就是listview介面與資料之間的橋梁,當列表裡的每一項顯示到頁面時,都會呼叫adapter的getview方法返回乙個view。想過沒有? 在我們的列表有1000000項時會是什麼樣的?是不是會占用極大的系統資源?
先看看下面的**:
public怎麼樣?如果超過1000000項時,後果不堪設想!您可千萬別這麼寫!view getview(
int position, view convertview, viewgroup parent)
我們再來看看下面的**:
public怎麼樣,上面的**是不是好了很多?系統將會減少建立很多view。效能得到了很大的提公升。view getview(
int position, view convertview, viewgroup parent)
((textview) convertview.findviewbyid
(r.id.text
)).settext
(data[position]);
((imageview) convertview.findviewbyid
(r.id.icon
)).setimagebitmap
((position &1)
==1? micon1 : micon2)
;return convertview;
}
還有沒有優化的方法呢? 答案是肯定的:
public怎麼樣?會不會又給您的系統帶來很大的提公升呢?看看下面三種方式的效能對比圖您就知道了!view getview(
int position, view convertview, viewgroup parent)
else
holder.text.settext
(data[position]);
holder.icon.setimagebitmap
((position &1)
==1? micon1 : micon2)
;return convertview;
}static
class viewholder
ListView 更高效的使用 Adapter
一 adapter adapter是listview和資料來源之間的中間人。當每條資料進入可見區時,adapter會呼叫他的getview 方法,並返回代表具體資料的檢視。滾動的時候頻繁呼叫,支援成千上萬的資料。最簡單的方法,最慢最不實用 public void getview int positi...
在ListView中巢狀ListView的事件處理
前天在工作中遇到在listview中的item需要用listview來展現處理後的內容,然後就遇到了乙個很頭疼的問題,作為item的listview沒法進行滑動,而且顯示也不正常,只是顯示幾個子item。不能將子item全部顯示,原因是在控制項繪製出來之前要對listview的大小進行計算,要解決將...
ListView中巢狀RadioButton按鈕
listview中巢狀radiobutton按鈕中導致單選按鈕可以多選,所以為了解決這個問題,我看網上都出現好多方法。試了好多,也不行,自己思考,豐衣足食。核心 final int index position holder.radio.setonclicklistener new onclickl...