RecyclerView multi-item loading and click events

 
compile 'com.android.support:recyclerview-v7:25.1.0'
////////////////////////////////////////////////////////////

// Set a linear layout calendar to hang up the layout manager //HORIZONTAL set the horizontal and vertical directions false true true reverse display upside down false order display
 recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

// Set up a grid manager //Vertical represents how many columns to display //Horizontal represents how many rows to display

recyclerView.setLayoutManager(new GridLayoutManager(this,1,GridLayoutManager.HORIZONTAL,false));

// Set the dividing line recyclerView .addItemDecoration( new DividerItemDecoration( this ,DividerItemDecoration.VERTICAL ) );

// Set the adapter MyAdapter adapter = new MyAdapter( this ,recylelist); recyclerView .setAdapter(adapter);


adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
    @Override
public void setOnItemClick(View view, int position) {    
        Log.d("ggg","点击");
    }
    @Override
public void setOnItemLongClick(View view, int position) {    
        Log.d("ggg","长按");
    }
});

///////////////////////////////////////////// ///


The first type of this multi-entry is one and the second is all the remaining entries
 
 
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {


    private Context context;
    private List<Bean> list;
    private int Viewk_0=0;
    private int Viewk_1=1;
    private int Viewk_2=2;
    private int Viewk_3=3;
    private View view;
    private List<String> lo;


    public MyAdapter(Context context,List<Bean> list){
        this.context = context;
        this.list=list;
    }

    @Override
public int getItemViewType(int position) {
        if(position*1==0){
            return Viewk_0;    
        }else{
            return Viewk_1;
        }
    }

    /** * * @param parent * @param viewType * @return */
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        
      

      if(viewType==Viewk_0){
           view = LayoutInflater.from(context).inflate(R.layout.itembanner,parent,false);
            ViewHolderA viewHolderA = new ViewHolderA(view);
            return viewHolderA;
       }else {
           view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
            ViewHolderB viewHolderB = new ViewHolderB(view);
            return viewHolderB;
       }

    }
    /*    Life's own event callback interface */
 public interface OnItemClickListener{    

        void setOnItemClick(View view,int position);

        void setOnItemLongClick(View view,int position);
    }
    private OnItemClickListener onItemClickListener;
    public void setOnItemClickListener(OnItemClickListener onItemClickListener){


        this.onItemClickListener = onItemClickListener;

    }
    @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
     if(holder  instanceof  ViewHolderA){    
       
     }else if(holder  instanceof  ViewHolderB){

      
     }


        if(null != onItemClickListener) {

           /* Callback click event */
             holder.itemView.setOnClickListener ( new View.OnClickListener () {
                 @Override
 public void onClick(View v) {                

                    onItemClickListener.setOnItemClick(v,position);
                } });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
public boolean onLongClick(View v) {
                    onItemClickListener.setOnItemLongClick(v,position);
                    return true;                
                } });
        }

    }
    @Override public int getItemCount() {
        return 4;
    }


    class ViewHolderA extends RecyclerView.ViewHolder{

        banner banner ;


        public ViewHolderA(View itemView) {
            super(itemView);


            banner=itemView.findViewById(R.id.banner);
        }
    }

    class ViewHolderB extends RecyclerView.ViewHolder{
        TextView text;
        TextView text2;
        SimpleDraweeView simple;
        public ViewHolderB(View itemView) {
            super(itemView);
            text = itemView.findViewById(R.id.text1);
            text2 = itemView.findViewById(R.id.text2);
            simple = itemView.findViewById(R.id.simple);
        }
    }



}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324579108&siteId=291194637