listview的多item类型的优化

来源:互联网 发布:雷神 外星人 知乎 编辑:程序博客网 时间:2024/05/16 07:12
package com.bwei.adapter;

import java.util.ArrayList;
import java.util.List;

import com.bwei.test.R;
import com.bwei.vo.Bean;
import com.lidroid.xutils.BitmapUtils;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class Myadapter extends BaseAdapter {
    private static final int Type_one = 1;
    private static final int Type_Zero = 0;
    List<Bean> list;
    Context context;
    private ViewHolder1 vh1;
    private ViewHolder2 vh2;

    public Myadapter(List<Bean> list, Context context) {
        super();
        this.list = list;
        this.context = context;
    }

    // 下拉刷新
    public void lvDown(List<Bean> list) {
        
        this.list.addAll(0,list);
        this.notifyDataSetChanged();
    }
    
    @Override
    public int getItemViewType(int position) {
        if(list.get(position).imgBig.length()>10){
            return Type_one;
        }
            return Type_Zero;
        
    }

    @Override
    public int getViewTypeCount() {
        // TODO Auto-generated method stub
        return 2;
    }

    // 下拉刷新
    public void lvUp(List<Bean> list) {
        
        this.list.addAll(list);
        this.notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {

        return null;
    }

    @Override
    public long getItemId(int position) {

        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int type=getItemViewType(position);
        
        if(convertView==null){
            switch (type) {
            case Type_Zero:
                vh1 = new ViewHolder1();
                convertView=LayoutInflater.from(context).inflate(R.layout.item, null);
                vh1.tv1=(TextView) convertView.findViewById(R.id.item_tv);
                vh1.img1=(ImageView) convertView.findViewById(R.id.item_img);
                convertView.setTag(vh1);
                break;

            case Type_one:
                vh2 = new ViewHolder2();
                convertView=LayoutInflater.from(context).inflate(R.layout.iten2, null);
                vh2.tv1=(TextView) convertView.findViewById(R.id.item2_tv);
                vh2.img1=(ImageView) convertView.findViewById(R.id.item2_img);
                vh2.img2=(ImageView) convertView.findViewById(R.id.item2_big_img);
                convertView.setTag(vh2);
                break;
            }
            
        }else{
            switch (type) {
            case Type_Zero:
                convertView.getTag();
                break;

            case Type_one:
                convertView.getTag();
                break;
            }
        }
            
            
        switch (type) {
        case Type_Zero:
            BitmapUtils utils=new BitmapUtils(context);
            utils.display(vh1.img1, list.get(position).portrait);
            vh1.tv1.setText(list.get(position).body);
            break;

        case Type_one:
            BitmapUtils utils2=new BitmapUtils(context);
            utils2.display(vh2.img1, list.get(position).portrait);
            utils2.display(vh2.img2, list.get(position).imgBig);
            vh2.tv1.setText(list.get(position).body);
            break;
        }
        
        return convertView;
    }
    
    class ViewHolder1{
        ImageView img1;
        TextView tv1;
    }
    
    class ViewHolder2{
        ImageView img1;
        TextView tv1;
        ImageView img2;
    }
    


}

0 0
原创粉丝点击