public class NewsAdapter extends BaseAdapter
{
private LayoutInflater mInflater;
private List<NewsBean> mNewsList;
private Context context;//glide加載用
public NewsAdapter(Context context, List<NewsBean> listNewsBean){
this.mInflater = LayoutInflater.from(context);
this.mNewsList = listNewsBean;
this.context=context;
}
@Override
public int getCount ( )
{ //適配器中數(shù)據(jù)集的數(shù)據(jù)個數(shù)
return mNewsList==null?0:mNewsList.size();
}
@Override
public Object getItem ( int position )
{ //獲取數(shù)據(jù)集中與所給索引對應(yīng)的數(shù)據(jù)項
return mNewsList.get(position);
}
@Override
public long getItemId ( int position )
{ //獲取指定行對應(yīng)的ID
return position;
}
@Override
public View getView (int position, View convertView, ViewGroup parent)
{ //獲取每一個Item顯示內(nèi)容view
ViewHolder viewHolder=null;
//實例化view,獲取控件id
if (convertView == null)
{
//View未實例化耍目,緩存池中無緩存啡邑;需要創(chuàng)建利朵;
//convertView的回收重用機制。
convertView = mInflater.inflate(R.layout.newslistview_item, null);
viewHolder = new ViewHolder();
viewHolder.title = (TextView) convertView.findViewById(R.id.item_title);
viewHolder.description = (TextView) convertView.findViewById(R.id.item_des);
viewHolder.thumb = (ImageView) convertView.findViewById(R.id.item_thumb);
//View中的setTag(Onbect)表示給View添加一個格外的數(shù)據(jù),以后可以用getTag()將這個數(shù)據(jù)取出來。
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
//設(shè)置數(shù)據(jù)
NewsBean newsBean =mNewsList.get(position);
viewHolder.title.setText(newsBean.getTitle());
viewHolder.description.setText(newsBean.getDescription());
Glide.with(context)
.load(newsBean.getThumb())
.into(viewHolder.thumb);
return convertView;
}
//避免重復(fù)findViewById
private class ViewHolder {
ImageView thumb;
TextView title;
TextView description;
}
}
主活動代碼