package com.laotan.easyreader.adapter;
import android.view.View;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.laotan.easyreader.R;
import com.laotan.easyreader.bean.zhihu.HomeListBean;
import com.laotan.easyreader.utils.GlideUtils;
import java.util.List;
import static com.laotan.easyreader.R.id.iv_three_one_three;
/**
* Created by quantan.liu on 2017/3/23.
* 多类型adapter
*/
public class ZhiHuAdapter extends BaseMultiItemQuickAdapter<HomeListBean, BaseViewHolder> {
/**
* Same as QuickAdapter#QuickAdapter(Context,int) but with
* some initialization data.
*
* @param data A new list is created out of this one to avoid mutable list
*/
public ZhiHuAdapter(List<HomeListBean> data) {
super(data);
addItemType(HomeListBean.TITLE, R.layout.item_zhihu_title);
addItemType(HomeListBean.DAILY, R.layout.item_zhihu_daily);
addItemType(HomeListBean.HOT, R.layout.item_zhihu_hot);
addItemType(HomeListBean.THEME, R.layout.item_zhihu_theme);
addItemType(HomeListBean.SECTION, R.layout.item_zhihu_saction);
}
@Override
protected void convert(final BaseViewHolder helper, final HomeListBean item) {
switch (helper.getItemViewType()) {
case HomeListBean.TITLE:
helper.setText(R.id.tv_title, item.getTitle());
break;
case HomeListBean.DAILY:
helper.setText(R.id.tv_daily_dec, item.getDailyList().getTitle());
GlideUtils.loadImage(2, item.getDailyList().getImages().get(0), (ImageView) helper.getView(R.id.iv_daily));
helper.getView(R.id.ll_section).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClickListener(item.getDailyList().getId(), helper.getView(R.id.iv_daily));
}
});
break;
case HomeListBean.HOT:
helper.setText(R.id.tv_three_one_one_title, item.getHotList().get(0).getTitle());
helper.setText(R.id.tv_three_one_two_title, item.getHotList().get(1).getTitle());
helper.setText(R.id.tv_three_one_three_title, item.getHotList().get(2).getTitle());
GlideUtils.loadImage(3, item.getHotList().get(0).getThumbnail(), (ImageView) helper.getView(R.id.iv_three_one_one));
GlideUtils.loadImage(3, item.getHotList().get(1).getThumbnail(), (ImageView) helper.getView(R.id.iv_three_one_two));
GlideUtils.loadImage(3, item.getHotList().get(2).getThumbnail(), (ImageView) helper.getView(iv_three_one_three));
onItemClick(helper, R.id.iv_three_one_one, item.getHotList().get(0).getNews_id());
onItemClick(helper, R.id.iv_three_one_two, item.getHotList().get(1).getNews_id());
onItemClick(helper, R.id.iv_three_one_three, item.getHotList().get(2).getNews_id());
break;
case HomeListBean.THEME:
helper.setText(R.id.tv_two_one_one_title, item.getThemeList().get(0).getDescription());
helper.setText(R.id.tv_two_one_two_title, item.getThemeList().get(1).getDescription());
GlideUtils.loadImage(3, item.getThemeList().get(0).getThumbnail(), (ImageView) helper.getView(R.id.iv_two_one_one));
GlideUtils.loadImage(3, item.getThemeList().get(1).getThumbnail(), (ImageView) helper.getView(R.id.iv_two_one_two));
OnItemThemeClick(helper, R.id.iv_two_one_one, item.getThemeList().get(0).getId());
OnItemThemeClick(helper, R.id.iv_two_one_two, item.getThemeList().get(1).getId());
break;
case HomeListBean.SECTION:
helper.setText(R.id.tv_one_photo_title, item.getSectionList().get(0).getName());
helper.setText(R.id.tv_two_one_one_title, item.getSectionList().get(1).getName());
helper.setText(R.id.tv_two_one_two_title, item.getSectionList().get(2).getName());
GlideUtils.loadImage(3, item.getSectionList().get(0).getThumbnail(), (ImageView) helper.getView(R.id.iv_one_photo));
GlideUtils.loadImage(3, item.getSectionList().get(1).getThumbnail(), (ImageView) helper.getView(R.id.iv_two_one_one));
GlideUtils.loadImage(3, item.getSectionList().get(2).getThumbnail(), (ImageView) helper.getView(R.id.iv_two_one_two));
OnItemSectionClick(helper, R.id.iv_one_photo, item.getSectionList().get(0).getId());
OnItemSectionClick(helper, R.id.iv_two_one_one, item.getSectionList().get(1).getId());
OnItemSectionClick(helper, R.id.iv_two_one_two, item.getSectionList().get(2).getId());
break;
}
}
/**
* 抽取成一个方法不然每一个都要重新写setOnClickListener(new View.OnClickListener()
*
* @param helper
* @param id
* @param urlId
*/
public void onItemClick(BaseViewHolder helper, int id, final int urlId) {
helper.getView(id).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClickListener(urlId, v);
}
});
}
public void OnItemThemeClick(BaseViewHolder helper, int id, final int urlId) {
helper.getView(id).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.OnItemThemeClickListener(urlId, v);
}
});
}
public void OnItemSectionClick(BaseViewHolder helper, int id, final int urlId) {
helper.getView(id).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.OnItemSectionClickListener(urlId, v);
}
});
}
OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClickListener(int id, View view);
void OnItemThemeClickListener(int id, View view);
void OnItemSectionClickListener(int id, View view);
}
}