Android的分类传值

左边的listView的适配器

public class MylistAdapter extends BaseAdapter {

    private Context context;
    private List<FenleiBean.DataBean> list;
    private int position;

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

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

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        ViewHolder vie;
        if (view == null){
            vie = new ViewHolder();
            view = View.inflate(context, R.layout.fenlei_left_item,null);
            vie.fenlei_left_tev = view.findViewById(R.id.fenlei_left_tev);
            view.setTag(vie);
        }else {
           vie = (ViewHolder) view.getTag();
        }

        vie.fenlei_left_tev.setText(list.get(i).getName());

        //判断
        if (position == i){
            //设置灰色的背景 和红色文字
            view.setBackgroundColor(Color.TRANSPARENT);
            vie.fenlei_left_tev.setTextColor(Color.RED);
        }else {
            //白色的背景和黑色的文字
            view.setBackgroundColor(Color.WHITE);
            vie.fenlei_left_tev.setTextColor(Color.BLACK);
        }

        return view;
    }

    public void setCurPosition(int i) {
        this.position = i;
    }

    static class ViewHolder{
        TextView fenlei_left_tev;
    }
}

右边的上边的适配器

public class MyRightTevAdapter extends RecyclerView.Adapter<MyfenleitevHolder> {

    private Context context;
    private List<SubClassBean.DataBean> subda;

    public MyRightTevAdapter(Context context, List<SubClassBean.DataBean> subda) {
        this.context = context;
        this.subda = subda;
    }

    @Override
    public MyfenleitevHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(context).inflate(R.layout.fenlei_right_item, parent, false);
        MyfenleitevHolder myfenleitevHolder = new MyfenleitevHolder(view);

        return myfenleitevHolder;
    }

    @Override
    public void onBindViewHolder(MyfenleitevHolder holder, int position) {

        holder.fenlei_right_tev.setText(subda.get(position).getName());

        //分类右边的图片和文字recyclerview
        holder.fenlei_rec_img_tev.setLayoutManager(new GridLayoutManager(context,3,GridLayoutManager.VERTICAL,false));

        final List<SubClassBean.DataBean.ListBean> sublist = subda.get(position).getList();
        MyRightImgTevAdapter myRightImgTevAdapter = new MyRightImgTevAdapter(context,sublist);
        holder.fenlei_rec_img_tev.setAdapter(myRightImgTevAdapter);

        //条目点击事件
        myRightImgTevAdapter.setOnItemListener(new Onitemface() {
            @Override
            public void OnClick(int position) {
                //做跳转传值的操作....跳转的是商品列表页面...商品列表页面调用的是搜索关键字的接口
                Intent it = new Intent(context, ProductActivity.class);
                //传值。。。关键字
                String name = sublist.get(position).getName();
                it.putExtra("riname",name);
                context.startActivity(it);
            }

            @Override
            public void OnLongClick(int position) {

            }
        });
    }

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

右边下边的的适配器

public class MyRightImgTevAdapter extends RecyclerView.Adapter<MyRightimgtevHolder> {

    private Context context;
    private List<SubClassBean.DataBean.ListBean> sublist;
    private Onitemface onitemface;

    public MyRightImgTevAdapter(Context context, List<SubClassBean.DataBean.ListBean> sublist) {
        this.context = context;
        this.sublist = sublist;
    }

    @Override
    public MyRightimgtevHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(context).inflate(R.layout.fenlei_right_img_tev_item,parent,false);
        MyRightimgtevHolder myRightimgtevHolder = new MyRightimgtevHolder(view);

        return myRightimgtevHolder;
    }

    @Override
    public void onBindViewHolder(MyRightimgtevHolder holder, final int position) {

        holder.right_tev.setText(sublist.get(position).getName());
        Glide.with(context).load(sublist.get(position).getIcon()).into(holder.right_img);
        //点击事件
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onitemface.OnClick(position);
            }
        });
    }

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

    public void setOnItemListener(Onitemface onitemface) {
        this.onitemface = onitemface;
    }
}

主逻辑的传值

//listView的设置
        final MylistAdapter mylistAdapter = new MylistAdapter(getActivity(),fenleiBean.getData());
        fenlei_left_list.setAdapter(mylistAdapter);

        //一个默认数据的显示,传cid并有请求数据的方法
        int cid = fenleiBean.getData().get(0).getCid();
        scid = String.valueOf(cid);
        subgetdata(scid);

        //条目点击事件
        fenlei_left_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                //设置适配器当前位置的方法
                mylistAdapter.setCurPosition(i);
                //刷新适配器。。。getView重新执行
                mylistAdapter.notifyDataSetChanged();
                ////滚动到指定的位置,,,第一个参数是滚动哪一个条目,,,滚动到哪个位置/偏移量
                fenlei_left_list.smoothScrollToPositionFromTop(i,(adapterView.getHeight() - view.getHeight()) / 2);

                //传cid并有请求数据的方法
                int cid = fenleiBean.getData().get(i).getCid();
                scid = String.valueOf(cid);
                subgetdata(scid);

            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值