listview multi-item loading

package com.example.day07_listview_;
import java.util.List;
import com.example.day07_listview_.bean.Data;
import com.nostra13.universalimageloader.core.ImageLoader;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyBaseAdapter extends BaseAdapter {

	private Context context;
	private List<Data> list;

	public MyBaseAdapter(Context context, List<Data> list) {
		this.context = context;
		this.list = list;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {

		int i = getItemViewType(position);
		ViewHolder0 viewHolder0 = null;
		ViewHolder1 viewHolder1 = null;
		ViewHolder2 viewHolder2 = null;
		ViewHolder3 viewHolder3 = null;
		if (convertView == null) {

			switch (i) {
			case 0:
				convertView = View.inflate(context, R.layout.large_image_list,
						null);
				
				 viewHolder0 =new ViewHolder0();
				 
				 viewHolder0.textView=(TextView) convertView.findViewById(R.id.large_textView);
				 viewHolder0.imageView=(ImageView) convertView.findViewById(R.id.large_imageView);
				 
				 convertView.setTag (viewHolder0);
				break;

			case 1:
				convertView = View
						.inflate(context, R.layout.middle_image, null);
				
				viewHolder1 =new ViewHolder1();
				
				viewHolder1.imageView=(ImageView) convertView.findViewById(R.id.middle_imageView);
				viewHolder1.textView=(TextView) convertView.findViewById(R.id.middle_textView);
				
				
				convertView.setTag (viewHolder1);
				break;
			case 2:

				convertView = View.inflate(context, R.layout.image_list, null);
				
				viewHolder2 =new ViewHolder2();
				
				
				viewHolder2.imageView1=(ImageView) convertView.findViewById(R.id.image_list_imageView1);
				viewHolder2.imageView2=(ImageView) convertView.findViewById(R.id.image_list_imageView2);
				viewHolder2.imageView3=(ImageView) convertView.findViewById(R.id.image_list_imageView3);
				viewHolder2.textView=(TextView) convertView.findViewById(R.id.image_list_textView);
				
				
				convertView.setTag (viewHolder2);
				
				break;
			case 3:
				convertView = View.inflate(context, R.layout.textview, null);
				
				viewHolder3 =new ViewHolder3();
				viewHolder3.textView=(TextView) convertView.findViewById(R.id.textView);
				
				
				convertView.setTag (viewHolder3);
				
				break;

			}

		}else{
			
			
			switch (i) {
			case 0:
				viewHolder0 =(ViewHolder0) convertView.getTag();
				break;
			case 1:
				viewHolder1 =(ViewHolder1) convertView.getTag();
				
				break;
			case 2:
				viewHolder2=(ViewHolder2) convertView.getTag();
				
				break;
			case 3:
				viewHolder3 =(ViewHolder3) convertView.getTag();
				
				break;

			
			}
			
		}

		
	/////////////////////////////////////////// ////////	
		ImageLoader imageLoader = ImageLoader.getInstance();
		
		Data data = list.get(position);
		switch (i) {
		case 0:
			viewHolder0.textView.setText(data.title);
			
			imageLoader.displayImage(data.large_image_list.get(0).url, viewHolder0.imageView);
			
			break;
		case 1:
			
			viewHolder1.textView.setText(list.get(position).title);
			
			
			imageLoader.displayImage(data.middle_image.url, viewHolder1.imageView);
			break;
		case 2:
			viewHolder2.textView.setText(list.get(position).title);
			
			imageLoader.displayImage(data.image_list.get(0).url, viewHolder2.imageView1);
			imageLoader.displayImage(data.image_list.get(1).url, viewHolder2.imageView2);
			imageLoader.displayImage(data.image_list.get(2).url, viewHolder2.imageView3);
			break;
		case 3:
			viewHolder3.textView.setText(list.get(position).title);
			
			break;

		
		}	
		return convertView;
	}

	@Override
	// The listView is swept away by the skeleton.
	public int getViewTypeCount() {
		// TODO Auto-generated method stub
		return 4;
	}
	@Override
	// Jiaoyufumin$镄勫緷Ba�Nao Ao Rong
	public int getItemViewType(int position){
		Data data = list.get(position);
		// trickle down
		if (data.large_image_list != null) {
			return 0;
			// slack
		} else if (data.middle_image != null
				&& !TextUtils.isEmpty(data.middle_image.url)
				&& data.image_list != null && data.image_list.size() == 0) {
			return 1;
			// trickle
		} else if (data.image_list != null && data.image_list.size() == 3) {
			return 2;
			// 鍙鏂囧囧囧
		} else if (data.large_image_list == null && data.middle_image == null
				&& data.image_list != null && data.image_list.size() == 0) {
			return 3;
		}
		return 3;
	}

	class ViewHolder0 {
		TextView textView;
		ImageView imageView;

	}

	class ViewHolder1 {
		TextView textView;
		ImageView imageView;

	}

	class ViewHolder2 {
		TextView textView;
		ImageView imageView1;
		ImageView imageView2;
		ImageView imageView3;

	}

	class ViewHolder3 {
		TextView textView;
	}

}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326480255&siteId=291194637