用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

多条目

2016-12-19 作者: 张贤伟举报

[java]代码库

package com.example.day10_listview;

import java.util.List;

import com.example.day10_listview.bean.Info;
import com.lidroid.xutils.BitmapUtils;

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<Info> list;

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

	}

	@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);
		ViewHolder3 holder3 = null;
		ViewHolder2 holder2 = null;
		ViewHolder1 holder1 = null;
		if (convertView == null) {
			// 通过视图类型填充不同的布局
			switch (type) {
			case 0:
				convertView = View.inflate(context, R.layout.item2, null);

				holder2 = new ViewHolder2();

				holder2.imageView = (ImageView) convertView
						.findViewById(R.id.item2_imageView);

				convertView.setTag(holder2);

				break;
			case 1:
				convertView = View.inflate(context, R.layout.item1, null);
				holder1 = new ViewHolder1();

				holder1.textView = (TextView) convertView
						.findViewById(R.id.item1_textView);
				convertView.setTag(holder1);
				break;
			case 2:
				convertView = View.inflate(context, R.layout.item3, null);

				holder3 = new ViewHolder3();

				holder3.textView = (TextView) convertView
						.findViewById(R.id.item3_textView);
				holder3.imageView = (ImageView) convertView
						.findViewById(R.id.item3_imageView);

				convertView.setTag(holder3);

				break;

			}

		} else {

			switch (type) {
			case 0:
				holder2 = (ViewHolder2) convertView.getTag();
				break;
			case 1:
				holder1 = (ViewHolder1) convertView.getTag();

				break;
			case 2:
				holder3 = (ViewHolder3) convertView.getTag();

				break;

			}

		}
///////////////////以上是listView优化,以下是赋值/////////////////////////////////////////
		
		 
		BitmapUtils bitmapUtils=new BitmapUtils(context);
		
		Info info = list.get(position);
		
		switch (type) {
		case 0:
		bitmapUtils.display(holder2.imageView, info.firstImg);
			break;
		case 1:
			holder1.textView.setText(info.title);
			break;
		case 2:
			holder3.textView.setText(info.title);
			bitmapUtils.display(holder3.imageView, info.firstImg);
			break;

		
		}
		
		
		return convertView;
	}

	@Override
	// 条目视图的类型
	public int getItemViewType(int position) {

		Info info = list.get(position);
		String firstImg = info.firstImg;
		String title = info.title;
		// 有图片的地址,但是没有文字
		if (!TextUtils.isEmpty(firstImg) && TextUtils.isEmpty(title)) {

			return 0;
		} else if (TextUtils.isEmpty(firstImg) && !TextUtils.isEmpty(title)) {
			// 没有图片的地址,但是有文字
			return 1;
		} else if (!TextUtils.isEmpty(firstImg) && !TextUtils.isEmpty(title)) {

			// 有图片的地址,也有文字
			return 2;
		}
		return 1;
	}

	@Override
	// 条目类型总数
	public int getViewTypeCount() {

		return 3;
	}

	class ViewHolder3 {
		TextView textView;
		ImageView imageView;
	}

	class ViewHolder1 {
		TextView textView;

	}

	class ViewHolder2 {
		ImageView imageView;

	}

}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...