package com.lzy.ninegridview.model.news;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.lzy.ninegridview.R;
import com.lzy.ninegridview.model.news.bean.NewsContent;
import com.lzy.ninegridview.model.news.bean.NewsImage;
import com.lzy.ninegrid.ImageInfo;
import com.lzy.ninegrid.NineGridView;
import com.lzy.ninegrid.preview.NineGridViewClickAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* ================================================
* 作 者:廖子尧
* 版 本:1.0
* 创建日期:2016/3/22
* 描 述:
* 修订历史:
* ================================================
*/
public class NewsContentAdapter extends RecyclerView.Adapter<NewsContentAdapter.PostViewHolder> {
private LayoutInflater mInflater;
private Context mContext;
private List<NewsContent> mDataList;
public NewsContentAdapter(Context context, List<NewsContent> data) {
super();
mContext = context;
mDataList = data;
mInflater = LayoutInflater.from(context);
}
@Override
public void onBindViewHolder(PostViewHolder holder, int position) {
holder.bind(mDataList.get(position));
}
@Override
public int getItemCount() {
return mDataList.size();
}
@Override
public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new PostViewHolder(mInflater.inflate(R.layout.item_news, parent, false));
}
public void setData(List<NewsContent> data) {
mDataList = data;
notifyDataSetChanged();
}
public class PostViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
@Bind(R.id.title) TextView title;
@Bind(R.id.nineGrid) NineGridView nineGrid;
@Bind(R.id.desc) TextView desc;
@Bind(R.id.pubDate) TextView pubDate;
@Bind(R.id.source) TextView source;
private NewsContent item;
private View itemView;
public PostViewHolder(View itemView) {
super(itemView);
this.itemView = itemView;
ButterKnife.bind(this, itemView);
}
public void bind(NewsContent item) {
this.item = item;
title.setText(item.getTitle());
desc.setText(item.getDesc());
pubDate.setText(item.getPubDate());
source.setText(item.getSource());
ArrayList<ImageInfo> imageInfo = new ArrayList<>();
List<NewsImage> images = item.getImageurls();
if (images != null) {
for (NewsImage image : images) {
ImageInfo info = new ImageInfo();
info.setThumbnailUrl(image.getUrl());
info.setBigImageUrl(image.getUrl());
imageInfo.add(info);
}
}
nineGrid.setAdapter(new NineGridViewClickAdapter(mContext, imageInfo));
if (images != null && images.size() == 1) {
nineGrid.setSingleImageRatio(images.get(0).getWidth() * 1.0f / images.get(0).getHeight());
}
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, NewsLinkActivity.class);
intent.putExtra("link", item.getLink());
mContext.startActivity(intent);
}
}
}