package cn.demo.videolist.media;
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.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import cn.demo.videolist.R;
import cn.demo.videolist.VideoItemData;
/**
* Author wangchenchen
* Description video列表adapter
*/
public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoViewHolder> {
private List<VideoItemData> list;
public VideoAdapter(Context context){
list=new ArrayList<>();
}
@Override
public VideoAdapter.VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_video, parent, false);
VideoAdapter.VideoViewHolder holder = new VideoAdapter.VideoViewHolder(view);
view.setTag(holder);
return new VideoAdapter.VideoViewHolder(view);
}
@Override
public void onBindViewHolder(VideoAdapter.VideoViewHolder holder, int position) {
holder.update(position);
}
@Override
public int getItemCount() {
return list.size();
}
public void refresh(List<VideoItemData> list){
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
public class VideoViewHolder extends RecyclerView.ViewHolder {
private FrameLayout videoLayout;
private int position;
private RelativeLayout showView;
private TextView title,from;
public VideoViewHolder(View itemView) {
super(itemView);
videoLayout = (FrameLayout) itemView.findViewById(R.id.layout_video);
showView= (RelativeLayout) itemView.findViewById(R.id.showview);
title= (TextView) itemView.findViewById(R.id.title);
from= (TextView) itemView.findViewById(R.id.from);
}
public void update(final int position) {
this.position = position;
title.setText(list.get(position).getTitle());
title.setText(list.get(position).getVideosource());
showView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showView.setVisibility(View.GONE);
if (click != null)
click.onclick(position);
}
});
}
}
private onClick click;
public void setClick(onClick click){
this.click=click;
}
public static interface onClick{
void onclick(int position);
}
}