1. 程式人生 > >建立多條目和獲取有無圖片資訊的功能 你get到了嗎!

建立多條目和獲取有無圖片資訊的功能 你get到了嗎!

package com.example.zhoukaolianxi;

import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;

import java.util.ArrayList; import java.util.List;

public class ContentAdapter extends BaseAdapter {

private List<ContentBean.NewsItem> list;
private Context context;
private final int ITEM_COUNT = 2;
private final int TT_ITEM = 0;
private final int GN_ITEM = 1;

public ContentAdapter(Context context) {
    this.context = context;

    list = new ArrayList<>();
}

public void setList(List<ContentBean.NewsItem> list){
    this.list = list;

    notifyDataSetChanged();
}

@Override
public int getViewTypeCount() {

    return ITEM_COUNT;
}

@Override
public int getItemViewType(int position) {
    return getItem(position).isTT() ? TT_ITEM:GN_ITEM;
}

@Override
public int getCount() {
    return list.size();
}

@Override
public ContentBean.NewsItem getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    //單一職責
    ViewHolder holder;
    //建立item
    if(convertView == null){
        convertView = LayoutInflater.from(context).inflate(
            getItemViewType(position)==GN_ITEM?R.layout.item_gn:R.layout.item_tt,parent,false
        );
        holder = new ViewHolder(convertView);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.bind(getItem(position));

    return convertView;
}

class ViewHolder{
    //如果是國內新聞icon為空 否則icon為空
    ImageView icon;

    TextView title;
    TextView date;

    public ViewHolder(View convertView){
            title = convertView.findViewById(R.id.title);
            date = convertView.findViewById(R.id.date);
            //盤點icon是否為空
        icon = convertView.findViewById(R.id.icon);
        convertView.setTag(this);
    }

    public void bind(ContentBean.NewsItem newsItem){
        title.setText(newsItem.getTitle());
        date.setText(newsItem.getDate());
        if(icon!=null){
            //載入圖片
            icon.setImageResource(R.mipmap.ic_launcher);
        }
    }
}

}