使用自定义的Adapter

使用自定义的Adapter

 

关键字 UI XML Adapter ListView

日期 2010/6/4

 

关于性能使用convertView 回收试图,性能提高200%

使用ViewHolder 性能再提高50%

继承BaseAdapter 类 实现其中的方法,注意getView() ,其中是最重要的一个重写方法。

其中使用LayoutInflater 将一个xml 解释为一个View ,然后将传来的数据存入View 中。

 

可以使用itemAdapter .notifyDataSetChanged();通知Adapter 内容已经改变 进行刷新

 

package com.shinestudio.hexcoversion.adapter;

import java.util.List;

import java.util.Map;

public class ItemAdapter extends BaseAdapter {

       static class ItemViewHolder {
              TextView t_ori;
              TextView t_bin;
              TextView t_dec;
              TextView t_hex;
       }

       private static LayoutInflater inflater;
       private String[] tag;
       private List<Map<String, String>> data;
 
       public ItemAdapter(Context context, String[] tag, List<Map<String, String>> data) {
              inflater = LayoutInflater.from(context);
              this.tag = tag;
              this.data = data;
       }

       @Override

       public int getCount() {
              return data.size();
       }

       @Override
       public Object getItem(int position) {
              return data.get(position);
       }

       @Override
       public long getItemId(int position) {
              return position;
       }

       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
              ItemViewHolder holder;
              if (convertView == null) {
                     convertView = inflater.inflate(R.layout.listitem, null);
                     holder = new ItemViewHolder();
                     holder.t_ori = (TextView) convertView.findViewById(R.id.tv_ori);
                     holder.t_bin = (TextView) convertView.findViewById(R.id.tv_bin);
                     holder.t_dec = (TextView) convertView.findViewById(R.id.tv_dec);
                     holder.t_hex = (TextView) convertView.findViewById(R.id.tv_hex);
                     convertView.setTag(holder);
              } else {
                     holder = (ItemViewHolder) convertView.getTag();
              }
              holder.t_ori.setText((String) data.get(position).get(tag[0]));
              holder.t_bin.setText((String) data.get(position).get(tag[1]));
              holder.t_dec.setText((String) data.get(position).get(tag[2]));
              holder.t_hex.setText((String) data.get(position).get(tag[3]));
              return convertView;
       }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值