package com.linroid.sky31radio.ui.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.linroid.sky31radio.R; import com.linroid.sky31radio.model.Anchor; import com.squareup.picasso.Picasso; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by linroid on 1/15/15. */ public class AnchorAdapter extends RecyclerView.Adapter<AnchorAdapter.ViewHolder> { List<Anchor> anchorList = new ArrayList<>(); Picasso picasso; String programCountTpl; OnAnchorSelectedListener listener; public AnchorAdapter(Context ctx, Picasso picasso) { this.picasso = picasso; programCountTpl = ctx.getResources().getString(R.string.tpl_program_count); } public void setOnAnchorSelectedListener(OnAnchorSelectedListener listener) { this.listener = listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext()); View view = inflater.inflate(R.layout.list_anchor, viewGroup, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int i) { Anchor anchor = anchorList.get(i); holder.nicknameTV.setText(anchor.getNickname()); holder.programCountTV.setText(String.format(programCountTpl, anchor.getProgramCount())); picasso.load(anchor.getAvatar()).placeholder(R.drawable.holde_image).into(holder.avatarIV); } @Override public int getItemCount() { return anchorList==null ? 0 : anchorList.size(); } public void setListData(List<Anchor> listData) { this.anchorList.clear(); this.anchorList = listData; } public List<Anchor> getAnchorList() { return anchorList; } class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { @InjectView(R.id.anchor_avatar) ImageView avatarIV; @InjectView(R.id.anchor_nickname) TextView nicknameTV; @InjectView(R.id.anchor_program_count) TextView programCountTV; public ViewHolder(View itemView) { super(itemView); ButterKnife.inject(this, itemView); itemView.setOnClickListener(this); } @Override public void onClick(View v) { int position = getPosition(); if(listener!=null){ Anchor anchor = anchorList.get(position); listener.onAnchorSelected(anchor); } } } public static interface OnAnchorSelectedListener { void onAnchorSelected(Anchor anchor); } }