-
Adapter中控件與數據關聯關鍵代碼查看全部
-
將layout文件轉為View對象2/2查看全部
-
將layout文件轉為View對象1/2查看全部
-
baseAdapter的各種方法查看全部
-
原來之前一直寫的都是逗比的寫法。。。。。尷尬查看全部
-
mInflater查看全部
-
ItemBean的數組查看全部
-
getCount():適配器中數據集中數據的個數 getItem():獲取數據集中指定索引對應的數據項。 getItemId():獲取指定行對應的id getView():獲取每一個item的顯示內容。查看全部
-
base adapter有holder.查看全部
-
通用的高效適配器的打造 按照截圖的思路,我們可以將自定義的適配器封裝起來,方便以后調用,去解決其他的項目問題,也就是代碼復用。只需要修改ViewHolder的成員變量(也就是Item的控件)、修改對ViewHolder成員的賦值(ItemBean的成員變量的getter方法)就可以了,非常方便。查看全部
-
對于一些細微的程序比較效率用獲取系統納秒時間方法 關鍵代碼: long start =System.nanoTime();程序開始前計時 ... long end =System.nanoTime();結束計時 long dValue=end-start;計算查值 mSumTime +=dValue統計時間 log.d("xys",String.valueof(mSunTime));打印出時間 viewholder 作為findviewbyid的一個轉接,避免系統大量的遍歷提高效率。查看全部
-
1.創建ViewHolder類,含有所需的各種控件,為了避免重復的findViewById() class ViewHolder{ public ImageView tv_image; public TextView tv_title; public TextView tv_content; } 2.判斷convertView是否為空 空:用setTag()方法將ViewHolder與其綁定 非空:用getTag()方法,取出相關的ViewHolder 重點: (1)convertView為空的時候,通過setTag()將ViewHolder與convertView綁定,每一個空的convertView都將會把Item的三個控件保存到ViewHolder里面。之后通過getTag()方法可以快速找到一個convertView所對應的ViewHolder對象,然后通過ViewHolder的成員變量找到了對應的三個控件,從而避免了用findViewById()去實例化對象。 (2)convertView不為空的時候,使用getTag()方法,取出它所關聯的ViewHolder對象,同時也找到l對應控件。 3.之后再創建 ItemBean 對象,為viewHolder的三個控件賦值: ItemBean bean = mylist.get(position); viewHolder.imageView.setImageResource(bean.getItemImageid()); viewHolder.title.setText(bean.getItemTitle()); viewHolder.content.setText(bean.getItemContent()); 4.return convertView查看全部
-
普通式與逗比式的不同在于convertView的使用上: 普通式對convertView進行了處理,充分利用了ListView的緩存機制,避免了重復創建View對象,因為通過LayoutInflater對象的inflate()方法創建View對象是非常耗時且耗資源的。 通過簡單的判斷: if (convertView == null){ convertView = myInflater.inflate(R.layout.item, null); } ,就可以避免大量創建View對象,從而對 getView()做了較好的優化。 ----------------------------------- 摘自評論區: 如果將findViewById寫在if(convertView==null)中的話,運行后listview的順序是混亂的。 普通式,要慎用。 系統每次調用 findViewById()的時候都會遍歷一次視圖樹,當視圖樹很復雜的時候就會消耗大量的時間。查看全部
-
為何是“逗比式”?因為這里只使用了getView()的position參數,完全沒有利用另外兩個參數。本質上說,是“沒有利用到ListView的緩存機制”。每次使用getView(),都通過 LayoutInflater 創建新的View對象view,并在view中找到相應的控件、去給它設置相應的值,完全沒有利用到 ListView 的緩存機制,這樣是對資源的極大浪費。查看全部
-
具體說明查看全部
舉報
0/150
提交
取消