RecyclerView多条目

package com.example.yk_moni1.base;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.yk_moni1.MyGson;
import com.example.yk_moni1.R;

import java.util.List;

/**
* Created by John on 2018/5/30 0030.
*/

public class MyBase extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private Context context ; //上下文
private List<MyGson.DataBean> list ; //集合

private static final int IMG_ONE = 0 ; //布局是一张图片的
private static final int IMG_THREE = 1 ; //布局是三张图片的

public MyBase(Context context, List<MyGson.DataBean> list) {
this . context = context;
this . list = list;
}

/**
*
* @param parent
* @param viewType
* @return
* 加载布局 创建ViewHolder
*
*/

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
int viewType1 = getItemViewType(viewType);
if (viewType1 == IMG_ONE ){
View view = View. inflate ( context , R.layout. myabse_img1 , null );
MyViewHolder holder = new MyViewHolder(view);
return holder;
} else {
View view = View. inflate ( context , R.layout. myabse_img3 , null );
MyViewHolder2 holder2 = new MyViewHolder2(view);
return holder2;
}
}

//绑定数据
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
int itemViewType = getItemViewType(position);
if (itemViewType == IMG_ONE ){
MyViewHolder holder1 = (MyViewHolder) holder;
holder1. txt_title1 .setText( list .get(position).getBrief());
holder1. txt_time11 .setText( list .get(position).getDate());
holder1. txt_laiy11 .setText( list .get(position).getSource());
//下载图片
List<MyGson.DataBean.LbimgBean> lbimg = list .get(position).getLbimg();
String src = lbimg.get( 0 ).getSrc();
Glide. with ( context ).load(src).into(holder1. img_tu11 );
}
if (itemViewType == IMG_THREE ){
MyViewHolder2 holder2 = (MyViewHolder2) holder;
holder2. txt_title31 .setText( list .get(position).getBrief());
holder2. txt_time31 .setText( list .get(position).getDate());
holder2. txt_laiy31 .setText( list .get(position).getSource());
//下载图片
List<MyGson.DataBean.LbimgBean> lbimg = list .get(position).getLbimg();
String src = lbimg.get( 0 ).getSrc();
String src1 = list .get(position).getMiniimg().get( 0 ).getSrc();
String src2 = list .get(position).getMiniimg02().get( 0 ).getSrc();
Glide. with ( context ).load(src).into(holder2. img_tu31 );
Glide. with ( context ).load(src1).into(holder2. img_tu32 );
Glide. with ( context ).load(src2).into(holder2. img_tu33 );
}
//设置条目长按点击事件
holder. itemView .setOnLongClickListener( new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if ( icallBack != null ){
icallBack .onLongClick( position );
}
return false ;
}
});

}

//得到条目的数量
@Override
public int getItemCount() {
return list .size();
}

//判断确定的条目 应该是什么布局
@Override
public int getItemViewType( int position) {
if (position% 3 == 0 ){
return IMG_ONE ;
} else {
return IMG_THREE ;
}
}
public class MyViewHolder extends RecyclerView.ViewHolder{

private final ImageView img_tu11 ;
private final TextView txt_title1 ;
private final TextView txt_time11 ;
private final TextView txt_laiy11 ;

public MyViewHolder(View itemView) {
super (itemView);
//获取资源ID
img_tu11 = itemView.findViewById(R.id. img_tu11 );
txt_title1 = itemView.findViewById(R.id. txt_title11 );
txt_time11 = itemView.findViewById(R.id. txt_time11 );
txt_laiy11 = itemView.findViewById(R.id. txt_laiy11 );
}
}
public class MyViewHolder2 extends RecyclerView.ViewHolder{
private final ImageView img_tu31 ;
private final ImageView img_tu32 ;
private final ImageView img_tu33 ;
private final TextView txt_title31 ;
private final TextView txt_time31 ;
private final TextView txt_laiy31 ;

public MyViewHolder2(View itemView) {
super (itemView);
//获取资源ID
img_tu31 = itemView.findViewById(R.id. img_tu31 );
img_tu32 = itemView.findViewById(R.id. img_tu32 );
img_tu33 = itemView.findViewById(R.id. img_tu33 );
txt_title31 = itemView.findViewById(R.id. txt_title3 );
txt_time31 = itemView.findViewById(R.id. txt_time3 );
txt_laiy31 = itemView.findViewById(R.id. txt_laiy3 );
}
}

//1.定义接口
public interface IcallBack{
void onLongClick( int position); //条目长按事件
}
//2.声明接口对象
private IcallBack icallBack ;
//3.提供外部调用的方法
public void setOnLongClick(IcallBack icallBack){
this . icallBack = icallBack;
}

//删除数据
public void removeItem( int position){
list .remove(position);
notifyItemRemoved(position);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值