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; |
} |
} |
by: 发表于:2017-07-13 11:00:34 顶(0) | 踩(0) 回复
??
回复评论