多布局

来源:互联网 发布:日本看中国网络语言 编辑:程序博客网 时间:2024/04/29 09:16
package com.example.test1;import java.util.List;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.assist.FailReason;import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;import android.content.Context;import android.graphics.Bitmap;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 MyAdapter extends BaseAdapter {Context context;List<Data> list;public MyAdapter(Context context, List<Data> list) {this.context = context;this.list = list;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 获取当前条目显示的类型int itemViewType = getItemViewType(position);// /////////////////////////优化//////////////////////////////////////////////ViewHolder1 holder1 = null;ViewHolder2 holder2 = null;if (convertView == null) {switch (itemViewType) {case 0:// 根据数据类型,加载有图片的布局文件convertView = View.inflate(context, R.layout.item1, null);holder1 = new ViewHolder1();ImageLoader instance = ImageLoader.getInstance();holder1.imageView = (ImageView) convertView.findViewById(R.id.imageView);holder1.tv_title = (TextView) convertView.findViewById(R.id.tv_title);holder1.tv_date = (TextView) convertView.findViewById(R.id.tv_date);holder1.tv_copyright = (TextView) convertView.findViewById(R.id.tv_copyright);convertView.setTag(holder1);break;case 1:// 根据数据类型,加载没有图片的布局文件convertView = View.inflate(context, R.layout.item2, null);holder2 = new ViewHolder2();holder2.tv_title = (TextView) convertView.findViewById(R.id.tv_title);holder2.tv_date = (TextView) convertView.findViewById(R.id.tv_date);holder2.tv_copyright = (TextView) convertView.findViewById(R.id.tv_copyright);convertView.setTag(holder2);break;}} else {switch (itemViewType) {case 0:holder1 = (ViewHolder1) convertView.getTag();break;case 1:holder2 = (ViewHolder2) convertView.getTag();break;}}// ////////////////////////给控件赋值////////////////////////////////////////////Data data = list.get(position);switch (itemViewType) {case 0://holder1.imageView.setImageResource(R.drawable.ic_launcher);ImageLoader instance = ImageLoader.getInstance();instance.displayImage(data.getImgs(), holder1.imageView);holder1.tv_copyright.setText(data.getCopyright());holder1.tv_date.setText(data.getPubDate());holder1.tv_title.setText(data.getTitle());break;case 1:holder2.tv_copyright.setText(data.getCopyright());holder2.tv_date.setText(data.getPubDate());holder2.tv_title.setText(data.getTitle());break;}return convertView;}@Override// 获得当前条目的种类public int getItemViewType(int position) {Data data = list.get(position);// 如果包含图片地址,返回0;if (data.getImgs().contains("jpg")) {return 0;} else {// 如果不包含图片地址,返回1;return 1;}}@Override// 设置listVIew条目布局的类型总数public int getViewTypeCount() {return 2;}// 有图片的id持有类class ViewHolder1 {ImageView imageView;TextView tv_title;TextView tv_date;TextView tv_copyright;}// 没有图片的id持有类class ViewHolder2 {TextView tv_title;TextView tv_date;TextView tv_copyright;}}

0 0
原创粉丝点击