package com.example.qyh.joe.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.example.qyh.joe.R; import com.example.qyh.joe.bean.DataBean; import com.example.qyh.joe.utils.ImageLoaderUtils; import java.util.List; /** * Created by admin on 2016/8/8. */ public class FirstAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final int TYPE_ITEM=0; private static final int TYPE_FOOTER=1; private List<DataBean> mData; private boolean mShowFooter=true; private Context mContext; private OnItemClickListener mOnItemClickListener; public FirstAdapter(Context context) { this.mContext=context; } /**设置数据**/ public void setData(List<DataBean> data){ this.mData=data; this.notifyDataSetChanged(); } @Override public int getItemViewType(int position) { if(!mShowFooter){ return TYPE_ITEM; } if(position+1==getItemCount()){//到了底部 return TYPE_FOOTER; }else{ return TYPE_ITEM; } } public DataBean getItem(int position){ return mData.get(position); } //根据传递过来的值 控制是否显示加载更多布局 public void isShowFooter(boolean b){ this.mShowFooter=b; } public boolean isShowFooter(){ return this.mShowFooter; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType==TYPE_ITEM){ View news = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_first_news, parent,false); ItemViewHolder vh=new ItemViewHolder(news); return vh; }else { View footer = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_first_footer, null); footer.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)); return new FooterViewHolder(footer); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof ItemViewHolder){ DataBean dataBean = mData.get(position); ((ItemViewHolder) holder).mTitle.setText(dataBean.getTitle()); ((ItemViewHolder) holder).mDesc.setText(dataBean.getDigest()); ImageLoaderUtils.display(mContext, ((ItemViewHolder) holder).mNewsImg, dataBean.getImgsrc()); } } @Override public int getItemCount() { int begin=mShowFooter?1:0; if(mData==null){ return begin; }else { return mData.size()+begin; } } public class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ public TextView mTitle; public TextView mDesc; public ImageView mNewsImg; public ItemViewHolder(View v) { super(v); mTitle = (TextView) v.findViewById(R.id.tvTitle); mDesc = (TextView) v.findViewById(R.id.tvDesc); mNewsImg = (ImageView) v.findViewById(R.id.ivNews); v.setOnClickListener(this);//给item注册点击监听 必须写 } @Override public void onClick(View v) { if(mOnItemClickListener!=null){ mOnItemClickListener.onItemClick(v,this.getPosition()); } } } public class FooterViewHolder extends RecyclerView.ViewHolder { public FooterViewHolder(View itemView) { super(itemView); } } //给RecyclerView注册点击回调接口 public interface OnItemClickListener { void onItemClick(View view,int position); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.mOnItemClickListener=onItemClickListener; } }