adapter京东

本文详细介绍了适配器模式在安卓应用程序中如何应用于不同场景,如秒杀商品展示、分类显示、图书推荐等。通过具体的代码示例,展示了如何使用RecyclerView和自定义适配器来处理复杂的数据绑定和事件监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

heng

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.HomeBean;

public class HengAdapter extends RecyclerView.Adapter<HengAdapter.ListHolder> {

    private Context context;
    private List<HomeBean.DataBean.MiaoshaBean.ListBean> list;

    public HengAdapter(Context context, List<HomeBean.DataBean.MiaoshaBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }


    @NonNull
    @Override
    public ListHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.item2, viewGroup, false);
        ListHolder holder = new ListHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ListHolder listHolder, int i) {
        Uri uri = Uri.parse(list.get(i).getImages().split("\\|")[0]);
        listHolder.img.setImageURI(uri);
        //listHolder.text01.setText(list.get(i).getTitle());
        listHolder.text01.setText(list.get(i).getSalenum() + "");
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class ListHolder extends RecyclerView.ViewHolder {
        private final SimpleDraweeView img;
        private final TextView text01;

        public ListHolder(View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.img);
            text01 = itemView.findViewById(R.id.text01);

        }
    }
}

 

 

 

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.HomeBean;

public class JiuAdapter extends RecyclerView.Adapter<JiuAdapter.ListHolder> {
    private Context context;
    private List<HomeBean.DataBean.FenleiBean> list;

    public JiuAdapter(Context context, List<HomeBean.DataBean.FenleiBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ListHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.item, viewGroup, false);
        ListHolder holder = new ListHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ListHolder listHolder, int i) {
        Uri uri = Uri.parse(list.get(i).getIcon().split("\\|")[0]);
        listHolder.img.setImageURI(uri);
        listHolder.text01.setText(list.get(i).getName());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class ListHolder extends RecyclerView.ViewHolder {
        private final SimpleDraweeView img;
        private final TextView text01;

        public ListHolder(View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.img);
            text01 = itemView.findViewById(R.id.text01);

        }
    }
}

 

 

 

shu

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.InfoActivity;
import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.HomeBean;

public class ShuAdapter extends RecyclerView.Adapter<ShuAdapter.ListHolder> {
    private List<HomeBean.DataBean.TuijianBean.ListBeanX> list;
    private Context context;

    public ShuAdapter(List<HomeBean.DataBean.TuijianBean.ListBeanX> list, Context context) {
        this.list = list;
        this.context = context;
    }


    @NonNull
    @Override
    public ListHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.itemshu, viewGroup, false);
        ListHolder listHolder = new ListHolder(view);
        return listHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ListHolder listHolder, final int i) {
        Uri uri = Uri.parse(list.get(i).getImages().split("\\|")[0]);
        listHolder.img.setImageURI(uri);
        listHolder.text01.setText(list.get(i).getTitle());
        listHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, InfoActivity.class);
                String pid = list.get(i).getPid();
                int i1 = Integer.parseInt(pid);
                intent.putExtra("pid",i1);

                //intent.putExtra("pid",list.get(i).getPid());
                context.startActivity(intent);

               /* String pid = list.get(i).getPid();
                Intent intent2 = new Intent(context, InfoActivity.class);
                intent2.putExtra("pid",pid);
                context.startActivity(intent2);
                int pid = data.get(i).getPid();
                Intent intent = new Intent(context, InfoActivity.class);
                intent.putExtra("pid",pid);
                context.startActivity(intent);*/
            }
        });
    }

    public int getItemCount() {
        return list.size();
    }

    class ListHolder extends RecyclerView.ViewHolder {
        private final SimpleDraweeView img;
        private final TextView text01;

        public ListHolder(View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.img);
            text01 = itemView.findViewById(R.id.text01);

        }
    }
}

 

 

fenzuo

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.HomeBean;
import dongyushan.bwie.com.jd.bean.ListBean;

public class FenZuoAdapter extends RecyclerView.Adapter<FenZuoAdapter.ListHolder> implements View.OnClickListener {
    private List<ListBean.DataBean> list;
    private Context context;
    private OnMyItemClickListener onMyItemClickListener;//定义的接口
    private RecyclerView recyclerView;

    public FenZuoAdapter(List<ListBean.DataBean> list, Context context) {
        this.list = list;
        Log.e("TAG", "adapter请求的长度是" + list.size());
        this.context = context;
    }

    public void setOnMyItemClickListener(OnMyItemClickListener onMyItemClickListener) {
        this.onMyItemClickListener = onMyItemClickListener;
    }

    //Adapter绑定RecyclerView时
    @Override
    public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
        this.recyclerView = recyclerView;
    }    //Adapter解除绑定RecyclerView时

    @Override
    public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
        super.onDetachedFromRecyclerView(recyclerView);
        this.recyclerView = null;
    }

    @NonNull
    @Override
    public ListHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.fenshu, null);
        view.setOnClickListener(this);//设置接口的实现方法
        ListHolder listHolder = new ListHolder(view);
        return listHolder;

    }

    @Override
    public void onBindViewHolder(@NonNull ListHolder listHolder, final int i) {

        listHolder.text01.setText(list.get(i).getName());


    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public void onClick(View view) {
        if (recyclerView != null && onMyItemClickListener != null) {
            int position = recyclerView.getChildAdapterPosition(view);
            onMyItemClickListener.onMyItemClick(recyclerView, view, position, "");
        }

    }

    class ListHolder extends RecyclerView.ViewHolder {

        private final TextView text01;

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

            text01 = itemView.findViewById(R.id.text_fen_name);

        }
    }

    // 接口回调
    public interface OnMyItemClickListener {
        void onMyItemClick(RecyclerView parent, View view, int position, String data);
    }


}

 

 

 

 

fenyou

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.FenBean;

public class FenYouAdapter extends RecyclerView.Adapter<FenYouAdapter.oneHolder> {
    private List<FenBean.DataBean> msg = new ArrayList<>();
    private Context context;

    public FenYouAdapter(Context context) {
        this.context = context;
    }

    public void setData(List<FenBean.DataBean> s) {
        msg.clear();
        msg.addAll(s);
    }

    @NonNull
    @Override
    public oneHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.fenyou, viewGroup, false);
        oneHolder oneHolder = new oneHolder(view);
        return oneHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull oneHolder oneHolder, int i) {
        oneHolder.name.setText(msg.get(i).getName());
        GridLayoutManager gridLayoutManager = new GridLayoutManager(context,3,GridLayoutManager.VERTICAL,false);
        oneHolder.recyclerView.setLayoutManager(gridLayoutManager);
        List<FenBean.DataBean.ListBean> list = msg.get(i).getList();
        ZiAdapter ziAdapter = new ZiAdapter(list,context);
        oneHolder.recyclerView.setAdapter(ziAdapter);
    }

    @Override
    public int getItemCount() {
        return msg.size();
    }

    class oneHolder extends RecyclerView.ViewHolder {
        TextView name;
        RecyclerView recyclerView;

        public oneHolder(View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.fen_you_text);
            recyclerView = itemView.findViewById(R.id.fenyou_child);


        }
    }
}

 

 

 

 

zi

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.FenBean;

public class ZiAdapter extends RecyclerView.Adapter<ZiAdapter.ListHolder>{
    private List<FenBean.DataBean.ListBean> dataBeans;
    private Context context;

    public ZiAdapter(List<FenBean.DataBean.ListBean> dataBeans, Context context) {
        this.dataBeans = dataBeans;
        this.context = context;
    }

    @NonNull
    @Override
    public ListHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.itemzi, viewGroup, false);
        ListHolder holder = new ListHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ListHolder listHolder, int i) {
        Uri uri = Uri.parse(dataBeans.get(i).getIcon().split("\\|")[0]);
        listHolder.img.setImageURI(uri);
        listHolder.text01.setText(dataBeans.get(i).getName());
    }

    @Override
    public int getItemCount() {
        return dataBeans.size();
    }

    class ListHolder extends RecyclerView.ViewHolder{
        private final SimpleDraweeView img;
        private final TextView text01;
        public ListHolder(View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.img_right);
            text01 = itemView.findViewById(R.id.text_right_child);

        }
    }
}

 

 

 

 

gou

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.WuBean;

public class GouAdapter extends RecyclerView.Adapter<GouAdapter.ViewHolder> {
    private GouAdapter2 gouAdapter2;
    private Context context;
    private List<WuBean.DataBean> list;

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

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        /*View view = LayoutInflater.from(context).inflate(R.layout.carlayout, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;*/
        View view = LayoutInflater.from(context).inflate(R.layout.carlayout, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(view);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
       list.get(i).getSellerName();
       viewHolder.shangjia_checkbox.setText(list.get(i).getSellerName());
        List<WuBean.DataBean.ListBean> list1 = this.list.get(i).getList();
        gouAdapter2 = new GouAdapter2(context,list1);
        viewHolder.recyclerView02.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false));
        viewHolder.recyclerView02.setAdapter(gouAdapter2);

        //商家全选
        viewHolder.shangjia_checkbox.setChecked(list.get(i).isOutCheck());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }


    public class ViewHolder extends RecyclerView.ViewHolder {

        /*private final SimpleDraweeView item_iamgeview;*/
        private final CheckBox shangjia_checkbox;
        /*private final TextView shangjia_name;
        private final CheckBox shangpin_checkbox;
        private final TextView item_name_text;
        private final TextView item_price_text;
        private final Button item_shanchu_butn;*/
        private RecyclerView recyclerView02;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            /*item_iamgeview = itemView.findViewById(R.id.item_iamgeview);
            shangjia_name = itemView.findViewById(R.id.shangjia_name);
            shangpin_checkbox = itemView.findViewById(R.id.shangpin_checkbox);
            item_name_text = itemView.findViewById(R.id.item_name_text);
            item_price_text = itemView.findViewById(R.id.item_price_text);
            item_shanchu_butn = itemView.findViewById(R.id.item_shanchu_butn);*/
            shangjia_checkbox = itemView.findViewById(R.id.shangjia_checkbox);
            recyclerView02 = itemView.findViewById(R.id.recycleview02);
        }
    }





}

 

 

 

 

gou2

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.WuBean;

public class GouAdapter2 extends RecyclerView.Adapter<GouAdapter2.MyViewHolder> {
    private Context context;
    private List<WuBean.DataBean.ListBean> list;

    public GouAdapter2(Context context, List<WuBean.DataBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.gouwuche2,viewGroup,false);
        MyViewHolder myViewHolder = new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.text01.setText(list.get(i).getTitle());
        myViewHolder.text02.setText(list.get(i).getPrice()+"");
        Uri parse = Uri.parse(list.get(i).getImages().split("\\|")[0]);
        DraweeController builder = Fresco.newDraweeControllerBuilder()//
                .setUri(parse)//设置图片地址
                .setAutoPlayAnimations(false)//设置动图是否播放
                .build();
        myViewHolder.simpleDraweeView.setController(builder);

        //商品全选
        myViewHolder.item2_check.setChecked(list.get(i).isCheck());


    }



    @Override
    public int getItemCount() {
        return list.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder{
        private final CheckBox item2_check;
        private SimpleDraweeView simpleDraweeView;
        private TextView text01,text02;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            text01 = itemView.findViewById(R.id.text01);
            text02 = itemView.findViewById(R.id.text02);
            simpleDraweeView = itemView.findViewById(R.id.img);
            item2_check=itemView.findViewById(R.id.item2_check);
        }
    }
}

 

 

sou

package dongyushan.bwie.com.jd.adapter;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeController;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import dongyushan.bwie.com.jd.InfoActivity;
import dongyushan.bwie.com.jd.R;
import dongyushan.bwie.com.jd.bean.SouBean;

public class SouAdapter extends RecyclerView.Adapter<SouAdapter.MyViewHolder> {

    private Context context;
    private List<SouBean.DataBean> data;

    public SouAdapter(Context context, List<SouBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    @NonNull
    @Override
    public SouAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.show_layout,viewGroup,false);
        MyViewHolder myViewHolder = new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull SouAdapter.MyViewHolder myViewHolder, final int i) {
        myViewHolder.showAdapterTitle.setText(data.get(i).getTitle());
        myViewHolder.showAdapterPrice.setText(data.get(i).getPrice()+"");
        String images = data.get(i).getImages();
        String[] split = images.split("\\|");
        Uri parse = Uri.parse(split[0]);
        AbstractDraweeController fresco = Fresco.newDraweeControllerBuilder()
                .setUri(parse)
                .build();
        myViewHolder.showAdapterSimple.setController(fresco);

        myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int pid = data.get(i).getPid();
                Intent intent = new Intent(context, InfoActivity.class);
                intent.putExtra("pid",pid);
                context.startActivity(intent);
            }
        });

    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private SimpleDraweeView showAdapterSimple;
        private TextView showAdapterTitle,showAdapterPrice;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            showAdapterSimple = itemView.findViewById(R.id.show_adapter_simple);
            showAdapterPrice = itemView.findViewById(R.id.show_adapter_price);
            showAdapterTitle = itemView.findViewById(R.id.show_adapter_title);


        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值