import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class NewsAdapter extends BaseAdapter {
private Context context;
private List<News.ResultBean.DataBean> list;
public NewsAdapter(Context context, List<News.ResultBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
List<News.ResultBean.DataBean.ImagesBean> beans = list.get(position).getImages();
if (beans.size() == 0 ){
return 3;
}else if(beans.size() == 1){
return 2;
}else if(beans.size() == 2){
return 1;
}else {
return 0;
}
}
@Override
public int getViewTypeCount() {
return 4;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 holder1 = null;
ViewHolder2 holder2 = null;
ViewHolder3 holder3 = null;
ViewHolder4 holder4 = null;
int type = getItemViewType(position);
switch (type){
case 3:
if (convertView == null){
convertView = View.inflate(context,R.layout.layout_list4,null);
holder4 = new ViewHolder4();
holder4.txtTitle = convertView.findViewById(R.id.txt_title);
convertView.setTag(holder4);
}else {
holder4 = (ViewHolder4) convertView.getTag();
}
holder4.txtTitle.setText(list.get(position).getTitle());
break;
case 2:
if (convertView == null){
convertView = View.inflate(context,R.layout.layout_list3,null);
holder3 = new ViewHolder3();
holder3.iamgeLogo1 = convertView.findViewById(R.id.image_logo);
holder3.txtTitle = convertView.findViewById(R.id.txt_title);
convertView.setTag(holder3);
}else {
holder3 = (ViewHolder3) convertView.getTag();
}
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(0).getU(),holder3.iamgeLogo1);
holder3.txtTitle.setText(list.get(position).getTitle());
break;
case 1:
if (convertView == null){
convertView = View.inflate(context,R.layout.layout_list2,null);
holder2 = new ViewHolder2();
holder2.iamgeLogo1 = convertView.findViewById(R.id.image_logo);
holder2.iamgeLogo2 = convertView.findViewById(R.id.image_logo1);
holder2.txtTitle = convertView.findViewById(R.id.txt_title);
convertView.setTag(holder2);
}else {
holder2 = (ViewHolder2) convertView.getTag();
}
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(0).getU(),holder2.iamgeLogo1);
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(1).getU(),holder2.iamgeLogo2);
holder2.txtTitle.setText(list.get(position).getTitle());
break;
case 0:
if (convertView == null){
convertView = View.inflate(context,R.layout.layout_list1,null);
holder1 = new ViewHolder1();
holder1.iamgeLogo1 = convertView.findViewById(R.id.image_logo);
holder1.iamgeLogo2 = convertView.findViewById(R.id.image_logo1);
holder1.iamgeLogo3 = convertView.findViewById(R.id.image_logo2);
holder1.txtTitle = convertView.findViewById(R.id.txt_title);
convertView.setTag(holder1);
}else {
holder1 = (ViewHolder1) convertView.getTag();
}
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(0).getU(),holder1.iamgeLogo1);
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(1).getU(),holder1.iamgeLogo2);
ImageLoader.getInstance().displayImage(list.get(position).getImages().get(2).getU(),holder1.iamgeLogo3);
holder1.txtTitle.setText(list.get(position).getTitle());
break;
}
return convertView;
}
class ViewHolder1{
ImageView iamgeLogo1;
ImageView iamgeLogo2;
ImageView iamgeLogo3;
TextView txtTitle;
}
class ViewHolder2{
ImageView iamgeLogo1;
ImageView iamgeLogo2;
TextView txtTitle;
}
class ViewHolder3{
ImageView iamgeLogo1;
TextView txtTitle;
}
class ViewHolder4{
TextView txtTitle;
}
}
多条目适配器使用
最新推荐文章于 2024-05-17 05:38:34 发布
本文介绍了一个自定义的新闻适配器类NewsAdapter,用于处理不同数量图片的新闻条目显示。该适配器能根据每条新闻图片的数量(0至3张)动态选择不同的布局,有效地实现了ListView中新闻条目的多样化展示。
1279

被折叠的 条评论
为什么被折叠?



