建立多條目和獲取有無圖片資訊的功能 你get到了嗎!
阿新 • • 發佈:2018-12-19
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); } } }
}