1.recyclerview调用
rvRecommend = (RecyclerView) findViewById(R.id.activity_academy_video_rv_recommend);
rvRecommend.setLayoutManager(new LinearLayoutManager(this));//纵向
//rvPhoto.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));横向
//rvAnswerSheet.setLayoutManager(new GridLayoutManager(this, 5));宫格 //academyVideoDetailAdapter.setOnRecommendItemClickListener(this);点击事件
rvRecommend.setAdapter(academyVideoDetailAdapter);
//记得new一个adapter
- 1
- 2
- 3
- 4
- 5
- 6
2.多种类型item的adapter
/**
* 学院视频详情页dadapter
* 作者: FebMaple on 11/5/2017.
* 邮箱: febmaple219@gmail.com
* 版权: FebMaple
* ====================================================
*/
public class AcademyVideoDetailAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mContext;
private LayoutInflater mLayoutInflater;
private static final int ACADEMY_VIDEO_TYPE = 0;
private static final int SCHOOL_VIDEO_TYPE = 1;
private List<T> mVideoList;
private static OnRecommendItemClickListener itemClickListener;//点击事件监听器
public AcademyVideoDetailAdapter(Context context, ArrayList<VideoRecommendEntity> videoList) {
mContext = context;
mVideoList = videoList;
mLayoutInflater = LayoutInflater.from(context);
}
//更新adapter
public void updataAdapter(List<VideoRecommendEntity> newList) {
mVideoList = newList;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == ACADEMY_VIDEO_TYPE) {
return new AcademyViewHolder(mLayoutInflater.inflate(R.layout.item_academy_video_detail_activity_academy_rv, parent, false));
} else {
return new SchoolViewHolder(mLayoutInflater.inflate(R.layout.item_academy_video_detail_activity_school_rv, parent, false));
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof AcademyViewHolder) {
((AcademyViewHolder) holder).bindData(mVideoList, position);
} else if (holder instanceof SchoolViewHolder) {
((SchoolViewHolder) holder).bindData(mVideoList, position);
}
}
@Override
public int getItemCount() {
return mVideoList == null ? 0 : mVideoList.size();
}
@Override
public int getItemViewType(int position) {
if (mVideoList.get(position).getVideoType() == 3) {
return SCHOOL_VIDEO_TYPE;//学校视频
} else {
return ACADEMY_VIDEO_TYPE;//学院视频和宣传视频
}
}
/**
* 学院holder
*/
public static class AcademyViewHolder extends RecyclerView.ViewHolder {
private TextView tvTitleRecommendItem;
public AcademyViewHolder(View itemView) {
super(itemView);
initView(itemView);
}
private void initView(View itemView) {
tvTitleRecommendItem = (TextView) itemView.findViewById(R.id.tv_title_academy_video_item);
}
public void bindData(final List<T> mVideoList, final int position) {
tvTitleRecommendItem.setText(mVideoList.get(position).getName());
//点击事件
llPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (itemClickListener != null) { itemClickListener.onRecommendItemClick(position, mVideoList);
}
}
});
}
}
/**
* 学校holder
*/
public static class SchoolViewHolder extends RecyclerView.ViewHolder {
private TextView tvSchoolNameRecommendItem;
public SchoolViewHolder(View itemView) {
super(itemView);
initView(itemView);
}
private void initView(View itemView) {
tvSchoolNameRecommendItem = (TextView) itemView.findViewById(R.id.tv_name_school_video_item);
}
public void bindData(final List<T> mVideoList, final int position) { tvSchoolNameRecommendItem.setText(mVideoList.get(position).getName());
llPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (itemClickListener != null) { itemClickListener.onRecommendItemClick(position, mVideoList);
}
}
});
}
}
public interface OnRecommendItemClickListener {
void onRecommendItemClick(int position, List<T> aList);
}
public void setOnRecommendItemClickListener(OnRecommendItemClickListener listener) {
itemClickListener = listener;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
attention:
/**
* 推荐列表item点击事件
*
* @param position
* @param aList
*/
@Override
public void onRecommendItemClick(int position, List<VideoRecommendEntity> aList) {
if (aList.get(position).getVideoType() == 3) {//学校
} else {//学院
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2.single item的adapter
/**
* 作者: FebMaple on 15/5/2017.
* 邮箱: febmaple219@gmail.com
* 版权: FebMaple
* ====================================================
*/
public class SchoolVideoPhotoAdapter extends RecyclerView.Adapter<SchoolVideoPhotoAdapter.MyViewHolder> {
private Context mContext;
private LayoutInflater mLayoutInflater;
private List<T> mPhotoList;
private static onItemClickListener itemClickListener;
public SchoolVideoPhotoAdapter(Context context, List<String> photoList) {
mContext = context;
mPhotoList = photoList;
mLayoutInflater = LayoutInflater.from(context);
}
public void updateAdapter(ArrayList<String> newList) {
mPhotoList = newList;
notifyDataSetChanged();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new MyViewHolder(mLayoutInflater.inflate(R.layout.item_school_video_detail_activity_rv_photo, parent, false));
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.bindData(mPhotoList, position);
}
@Override
public int getItemCount() {
return mPhotoList == null ? 0 : mPhotoList.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private SimpleDraweeView ivPhoto;
public MyViewHolder(View itemView) {
super(itemView);
initView(itemView);
}
private void initView(View itemView) {
ivPhoto = (SimpleDraweeView) itemView.findViewById(R.id.iv_photo_banner_school_video_item);
}
public void bindData(final List<T> aList, final int position) {
ivPhoto.setImageURI(Uri.parse(aList.get(position)));
ivPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (itemClickListener != null) {
itemClickListener.onItemClick(position, aList);
}
}
});
}
}
public interface onItemClickListener {
void onItemClick(int position, List<String> aList);
}
public void setOnItemClickListener(onItemClickListener listener) {
itemClickListener = listener;
}
}