Android之ListView的Adapter的复用

在Android开发中一个项目需要在很多地方使用的ListView。既然使用了ListView则不可避免的使用了Adapter,重复写逻辑几乎相同的Adapter也是一件枯燥的事,下面来研究如何复用Adapter.
使用了ListView的两个地方(模拟代码):

一.//第一个ListView
listView.setAdapter(new MyAdapter());
 class MyAdapter extends BaseAdapter{
   
    //arrayList是设置给ListView数据的集合
       @Override
       public int getCount() {
           return arrayList.size();
       }

       @Override
       public Object getItem(int i) {
           return arrayList.get(i);
       }

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

       @Override
       public View getView(int i, View view, ViewGroup viewGroup) {
          ViewHolder  viewHolder =null;
           if(view == null){
               view = View.inflate(ThemeFragment.this.getActivity(), R.layout.theme_adapt_item,null);
               viewHolder = new ViewHolder();
               viewHolder.icon = (ImageView) view.findViewById(R.id.theme_iv);
               viewHolder.textView = (TextView) view.findViewById(R.id.theme_text);
               view.setTag(viewHolder);
           }else{
               viewHolder = (ViewHolder) view.getTag();
           }
           //给ViewHolder设置值,即给ListView的各个组件设置值
           BitmapHelper.getBitmapUtils().display(viewHolder.icon, GlobalUrl.ICON_URL+theme.themeInfos.get(i).url);
           viewHolder.textView.setText(theme.themeInfos.get(i).des);
           return view;
       }
   }
   //为了优化ListView不可避免的使用了ViewHolder来复用
    static class ViewHolder{
   
       ImageView  icon;
       TextView   textView;
    }
二.//第二个ListView

listView.setAdapter(new MyAdapter());
 class MyAdapter extends BaseAdapter{
   
    //arrayList是设置给ListView数据的集合
       @Override
       public int getCount() {
           return arrayList.size();
       }

       @Override
       public Object getItem(int i) {
           return arrayList.get(i);
       }

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

       @Override
       public View getView(int i, View view, ViewGroup viewGroup) {
          ViewHolder  viewHolder =null;
           if(view == null){
               view = View.inflate(HomeFragment.this.getActivity(), R.layout.home_adapt_item, null);
               viewHolder = new ViewHolder();
           viewHolder.item_icon = (ImageView) view.findViewById(R.id.item_icon);
           viewHolder.app_name = (TextView) view.findViewById(R.id.item_title);
           viewHolder.app_size = (TextView) view.findViewById(R.id.item_size);
           viewHolder.app_introduce = (TextView) view.findViewById(R.id.item_bottom);
               view.setTag(viewHolder);
           }else{
               viewHolder =
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值