如何高效使用Adapter

以下转自How you create your view for listview on Android?

How you create your view for listview on Android?
There have three versions of getView() function,
the first version is a slow way,and the last is the fastest one.

Version 1:

1public View getView(int position, View convertView, ViewGroup parent) {
2     View item = mInflater.inflate(R.layout.list_item_icon_text, null);
3      ((TextView) item.findViewById(R.id.text)).setText(DATA[position]);
4      ((ImageView) item.findViewById(R.id.icon)).setImageBitmap(
5     (position & 1) == 1 ? mIcon1 : mIcon2);
6      return item;
7 }

 

Version 2:

1public View getView(int position, View convertView, ViewGroup parent) {
2    if (convertView == null) {
3      convertView = mInflater.inflate(R.layout.item, parent, false);
4    }
5    ((TextView) convertView.findViewById(R.id.text)).setText(DATA[position]);
6     ((ImageView) convertView.findViewById(R.id.icon)).setImageBitmap(
7     (position & 1) == 1 ? mIcon1 : mIcon2);
8     return convertView;
9 }


Version 3: the fast way for getView function.

01static class ViewHolder {
02  TextView text;
03  ImageView icon;
04}
05 
06public View getView(int position, View convertView, ViewGroup parent) {
07   ViewHolder holder;
08 
09  if (convertView == null) {
10     convertView = mInflater.inflate(R.layout.list_item_icon_text,parent, false);
11     holder = new ViewHolder();
12     holder.text = (TextView) convertView.findViewById(R.id.text);
13     holder.icon = (ImageView) convertView.findViewById(R.id.icon);
14     convertView.setTag(holder);
15   else {
16     holder = (ViewHolder) convertView.getTag();
17   }
18 
19   holder.text.setText(DATA[position]);
20   holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
21   return convertView;
22 
23}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值