java词条_多条目 - java代码库 - 云代码

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

public MyBaseAdapter(List 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;

}

}

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值