參考**:
在安卓中 自定義adapter時,使用viewholder可快取每個item的view,減少一些不必要的操作,提高效能。在網上看到一種比較簡潔的寫法,避免每個自定義的adapter定義
viewholder實體類。
importandroid.util.sparsearray;
importandroid.view.view;
/***
* @類名 viewholderutils
* @功能描述 資料來源 adapter 中 優化 控制項 獲取 輔助類
* @作者 2014-5-19 / 郝志東
* @備註
《對應的分析文件、設計文件或其他備註說明》
* @修改記錄
* r1:
* 修改理由:
*/publicclassviewholderutils
/***
* @功能 從快取中 獲取 view 控制項 物件,如果不存在快取就初始化後放入快取,以備下次使用;
* 知識點: android應用效能優化之使用sparsearray替代hashmap;
* @param view 當前item 布局 view
* @param id 當前item中 某個view 的id值
* @return 當前item中對應id的view物件
* @作者 2014-5-19 / 郝志東
*/public
static
extends view> t get(view view, int id)
view childview = viewhodler.get(id);
if (childview == null)
return
(t) childview;}}
在自定義的
adapter中
getview函式中呼叫方式如下:
@override
public view getview(int position, view convertview, viewgroup parent)
convertview = layoutinflater.from(mcontext).inflate(
r.layout.item_listview_healtheducation, parent, false);
}// 從 緩衝 中 獲取 textview 物件
textview titleview = viewholderutils.get(convertview,
r.id.tv_item_healtheducation);
conductcontentitem item = getitem(position);
if (item != null)
return convertview;
}來自為知筆記(wiz)
使用ViewHolder模式優化ListView
1 通過viewholder可以減少物件的建立,降低資源的消耗。2 使用快取中的covertview。3 settag 中的tag不是用來標識特定的view,而是儲存和view相關的額外資訊。public classnotifyadapterextendsbaseadapter override p...
python 中if else的多種簡潔的寫法
因寫多了判斷語句,看著短短的 卻佔據來好幾行,於是便搜下if else簡潔的寫法,結果也是發現新大陸 4種 第1種 就是普通寫法 a,b,c 1,2,3 if a b c a else c b 例子2 a,b 1,2 if a b max a else max b print max max 第二種...
Vue雙向繫結原理(我盡量寫的。簡潔)
先問自己兩個問題 使用object.defineproperty 監聽物件屬性的改變 2.當資料發生改變後,vue是如何知道 通知哪些 人 介面發生重新整理呢 張三,李四,王五 發布訂閱者模式 張三 李四 王五 這裡假設他們分別對應這三個message vue 第一步肯定是建立vue例項。注意這裡的...