广告
返回顶部
首页 > 资讯 > 移动开发 >Android中RecyclerView实现商品分类功能
  • 712
分享到

Android中RecyclerView实现商品分类功能

2024-04-02 19:04:59 712人浏览 八月长安
摘要

本文实例为大家分享了Android中RecyclerView实现商品分类功能的具体代码,供大家参考,具体内容如下 三个个RecyclerView实现 //左边的布局  <Lin

本文实例为大家分享了Android中RecyclerView实现商品分类功能的具体代码,供大家参考,具体内容如下

三个个RecyclerView实现

//左边的布局

 <LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_name"
        android:textSize="18sp"
        android:text="阿萨德发的"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

//右边的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/name"/>

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/right_recy"
        android:layout_below="@+id/name"/>
</RelativeLayout>

//子布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/image2"
        android:layout_width="90dp"
        android:layout_height="90dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/title1" />
</LinearLayout>

//定义一个接口

public interface CallBack {
void onSuccess(List<LeftBean.DataBean> list);
void onFailer(String error);
}

//左边的Model层

public class LeftModel {

    private  String path="http://www.zhaoapi.cn/product/getCataGory";
    public void getData(final CallBack callBack){
        OkHttp okHttp=new OkHttp();
        okHttp.get(path).getDataLiserner(new OkHttp.GetData() {
            @Override
            public void Data(String s) {
                Gson gson=new Gson();
                LeftBean JSON = gson.fromjson(s, LeftBean.class);
                List<LeftBean.DataBean> data = json.getData();
                if (data!=null){
                    callBack.onSuccess(data);
                }else {
                    callBack.onFailer("失败");
                }
            }
        });
    }
}

//左边的Presenter层

public class LeftPresenter {
    private LeftView leftView;
    private final LeftModel leftModel;

    public LeftPresenter(LeftView leftView) {
        this.leftView = leftView;
        leftModel = new LeftModel();
    }

    public void showLeft(){
        leftModel.getData(new CallBack() {
            @Override
            public void onSuccess(List<LeftBean.DataBean> list) {
                leftView.onSuccess(list);
            }

            @Override
            public void onFailer(String error) {
                leftView.Failer(error);
            }
        });
    }
}

//View层

public interface LeftView {
   void onSuccess(List<LeftBean.DataBean> list);
   void Failer(String error);
}

//左边的适配器

public class LeftRecycAdapter extends RecyclerView.Adapter<LeftRecycAdapter.LeftViewHoler>{

    private Context mContext;
    private List<LeftBean.DataBean> list;

    public LeftRecycAdapter(Context mContext, List<LeftBean.DataBean> list) {
        this.mContext = mContext;
        this.list = list;
    }

    @NonNull
    @Override
    public LeftViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int ViewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.left_item, viewGroup,false);
        LeftViewHoler leftViewHoler=new LeftViewHoler(view);
        return leftViewHoler;
    }

    @Override
    public void onBindViewHolder(@NonNull LeftViewHoler leftViewHoler, int position) {
        leftViewHoler.textView.setText(list.get(position).getName());
    }

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


    public class LeftViewHoler extends RecyclerView.ViewHolder {
        private TextView textView;
        public LeftViewHoler(@NonNull View itemView) {
            super(itemView);
            textView=itemView.findViewById(R.id.tv_name);
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onClickListener.onclick(v,getAdapterPosition());
                }
            });
        }
    }

    public interface OnClickListener{
        void onclick(View view,int position);
    }

    OnClickListener onClickListener;

    public void setOnclickListener(OnClickListener onclickListener){
        this.onClickListener=onclickListener;
    }
}

开始右边的了
//右边的接口

public interface CallBackRight {
    void onSuccess2(List<RightBean.DataBean> list);
    void onFailer2(String error);
}

//右边的Model层

public class RightModel {
   // private String path1="http://www.zhaoapi.cn/product/getProductCatagory?cid=3&tdsourcetag=s_pcqq_aiomsg";
    public void showright(final String cid2, final CallBackRight callBackRight){

                OkHttp okHttp=new OkHttp();
                okHttp.get(cid2).getDataLiserner(new OkHttp.GetData() {
                    @Override
                    public void Data(String s) {
                        Gson gson=new Gson();
                        RightBean json = gson.fromJson(s, RightBean.class);
                        List<RightBean.DataBean> data = json.getData();
                        if (data!=null){
                            callBackRight.onSuccess2(data);
                        }else {
                            callBackRight.onFailer2("错误");
                        }
                    }
                });


    }
}

//右边的Presenter层

public class RightPresenter {
    private final RightModel rightModel;
    private RightView rightView;

    public RightPresenter(RightView rightView) {
        this.rightView = rightView;
        rightModel = new RightModel();
    }

    public void showright(String id){
        rightModel.showright(id, new CallBackRight() {
            @Override
            public void onSuccess2(List<RightBean.DataBean> list) {
                rightView.onSuccess2(list);
            }

            @Override
            public void onFailer2(String error) {
                rightView.onFailer2(error);
            }
        });
    }
}

//右边的View层

public interface RightView {
    void onSuccess2(List<RightBean.DataBean> list);
    void onFailer2(String error);
}

//右边的适配器

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

    private Context mContext;
    private List<RightBean.DataBean> list;

    public RightRecycAdapter(Context mContext, List<RightBean.DataBean> list) {
        this.mContext = mContext;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int ViewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.right_item, viewGroup, false);
        ViewHolder viewHolder=new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
        viewHolder.textView.setText(list.get(position).getName());
        List<RightBean.DataBean.ListBean> list = this.list.get(position).getList();
        GridLayoutManager gridLayoutManager=new GridLayoutManager(mContext,3);
        viewHolder.recyclerView.setLayoutManager(gridLayoutManager);
        ChildAdapter childAdapter=new ChildAdapter(mContext,list);
        viewHolder.recyclerView.setAdapter(childAdapter);
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private RecyclerView recyclerView;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            textView=itemView.findViewById(R.id.name);
            recyclerView=itemView.findViewById(R.id.right_recy);
        }
    }
}

//子类适配器

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

    private Context context;
    private List<RightBean.DataBean.ListBean> list;

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

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

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
        viewHolder.textView.setText(list.get(position).getName());
        Picasso.with(context).load(list.get(position).getIcon()).into(viewHolder.imageView);
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        private ImageView imageView;
        private TextView textView;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView=itemView.findViewById(R.id.image2);
            textView=itemView.findViewById(R.id.title1);
        }
    }
}

//开始使用

public class Fragment1 extends Fragment implements LeftView,RightView {

    private View view;
    private RecyclerView left;
    private RecyclerView right;
    private RightPresenter rightPresenter;

    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            final List<LeftBean.DataBean> list = (List<LeftBean.DataBean>) msg.obj;
            LinearLayoutManager linearLayoutManager=new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
            left.setLayoutManager(linearLayoutManager);
            LeftRecycAdapter leftRecycAdapter=new LeftRecycAdapter(getActivity(),list);
            left.setAdapter(leftRecycAdapter);
            leftRecycAdapter.setOnclickListener(new LeftRecycAdapter.OnClickListener() {
                @Override
                public void onclick(View view, int position) {
                    int cid = list.get(position).getCid();
                    rightPresenter.showright("http://www.zhaoapi.cn/product/getProductCatagory?cid="+cid);
                }
            });
            //List<RightBean.DataBean> list1 = (List<RightBean.DataBean>) msg.obj;

        }
    };

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_fragment1, container, false);
        initView();
        return view;
    }

    private void initView() {
        LeftPresenter leftPresenter=new LeftPresenter(this);
        leftPresenter.showLeft();
        left = (RecyclerView) view.findViewById(R.id.left_recy);
        right = (RecyclerView) view.findViewById(R.id.right_recy);
        rightPresenter = new RightPresenter(this);
    }

    @Override
    public void onSuccess(List<LeftBean.DataBean> list) {
        Message message = Message.obtain();
        message.obj=list;
        handler.sendMessage(message);
    }

    @Override
    public void Failer(String error) {

    }

    @Override
    public void onSuccess2(final List<RightBean.DataBean> list) {
        


                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        LinearLayoutManager linear= new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
                        right.setLayoutManager(linear);
                        RightRecycAdapter rightRecycAdapter=new RightRecycAdapter(getActivity(),list);
                        right.setAdapter(rightRecycAdapter);

                    }
                });

}
    @Override
    public void onFailer2(String error) {

    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android中RecyclerView实现商品分类功能

本文链接: https://www.lsjlt.com/news/138751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中RecyclerView实现商品分类功能
    本文实例为大家分享了Android中RecyclerView实现商品分类功能的具体代码,供大家参考,具体内容如下 三个个RecyclerView实现 //左边的布局  <Lin...
    99+
    2022-11-13
  • 如何使用PHP实现商品分类和筛选功能
    随着越来越多的电子商务平台的出现,商品分类和筛选功能成为了一个成功的商业网站所必须的基本功能之一。在本文中,我们将介绍如何使用PHP实现商品分类和筛选的功能,让您的网站能够更加方便和易于使用。一、商品分类定义商品分类首先,你需要对商品进行分...
    99+
    2023-05-21
    筛选功能 PHP 商品分类
  • 买菜系统中如何实现商品分类与展示功能?
    随着科技的发展,线上购物已经成为人们生活的一部分。尤其是在繁忙的都市生活中,很多人选择通过买菜系统来购买食材和日常用品。买菜系统的商品分类与展示功能是其重要的组成部分,能够方便用户快速找到所需商品,并实现高效的购物体验。首先,买菜系统的商品...
    99+
    2023-11-01
    商品 商品展示:展示 商品分类:分类 菜品 分类展示
  • PHP商城中的商品管理功能实现
    随着互联网的不断发展和进步,线上购物成为了现代人不可或缺的生活方式。而对于电商商城而言,商品管理是最为重要的一项功能之一。PHP商城中的商品管理功能,实现起来非常的简单方便,下面就来详细介绍一下。商品的添加在商品管理界面中,管理员可以选择添...
    99+
    2023-05-22
    PHP 商城 商品管理功能
  • PHP商城中的商品租赁功能实现
    随着人们生活水平的提高,逐渐有了更高的生活品质和消费需求,特别是对于一些高昂的商品,很多人都想尝试,但是却无法承担高昂的购买费用,这时商品租赁就成了一个非常不错的选择。随着网络技术、支付体系等方面的不断提升,电子商务平台已经成为了人们进行商...
    99+
    2023-05-21
    PHP 商城 租赁功能
  • Android Recyclerview实现左滑删除功能
    本文实例为大家分享了Android Recyclerview实现左滑删除的具体代码,供大家参考,具体内容如下 1.先创建一个工具类 SlideRecyclerView public...
    99+
    2022-11-13
  • Android RecyclerView实现下拉列表功能
    现在市面上的很多的应用,都带有下拉列表的功能,将所有选项都放在下拉列表中,当用户点击选择的时候,弹出所有的选项,用户选择一项后,下拉列表自动隐藏,很多下拉列表都是用ListVi...
    99+
    2022-06-06
    列表 下拉列表 recyclerview Android
  • Android中RecyclerView实现简单购物车功能
    Android中RecyclerView实现简单的购物车,供大家参考,具体内容如下 我们知道在ListView中用setTag来解决Item的复用问题,但是RecyclerView中...
    99+
    2022-11-13
  • javascript实现查询商品功能
    本文实例为大家分享了javascript实现查询商品功能的具体代码,供大家参考,具体内容如下 这是没有点击查询的主界面图 这是点击名称查询之后 按照价格查询 代码: <...
    99+
    2022-11-12
  • vue实现商品多选功能
    本文实例为大家分享了vue实现商品多选功能的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <he...
    99+
    2022-11-13
  • vue实现商品详情页功能之商品选项卡
    本文实例为大家分享了vue实现商品详情页功能之商品选项卡的具体代码,供大家参考,具体内容如下 用户点击商品进入商品详情页,默认显示第一个小图对应的大图,然后鼠标滑到小图上,大图也会发...
    99+
    2022-11-12
  • Android如何实现仿京东、拼多多商品分类页
    这篇文章主要介绍了Android如何实现仿京东、拼多多商品分类页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先放一个写完之后的样子:写这个需求的思路也很清晰,首先左边肯定是...
    99+
    2023-05-30
    android
  • nodejs实现获取某宝商品分类
    闲来无事,研究下电商网站,正好朋友在开某宝店,看到琳琅满目的商品分类,见猎心喜。于是稍微研究了一下。 商品分类获取全由AJAX完成,且因为需要登录,我闲麻烦,就采取了最简单的办法,进入后台直接打开控制台,把...
    99+
    2022-06-04
    商品分类 nodejs
  • Android中RecyclerView实现滑动删除与拖拽功能
    前言 从Android 5.0开始,谷歌推出了新的控件RecyclerView,相对于早它之前的ListView,优点多多,功能强大,也给我们的开发着提供了极大的便利,今天自己...
    99+
    2022-06-06
    recyclerview Android
  • Android中RecyclerView拖拽、侧删功能的实现代码
    废话不多说,下面展示一下效果。这是GridView主文件实现。public class GridViewActivity extends AppCompatActivity { RecyclerView mRecyclerView; L...
    99+
    2023-05-30
    android 拖拽删除 recycle
  • 买菜系统中如何实现商品品牌与厂商管理功能?
    买菜系统中如何实现商品品牌与厂商管理功能?随着互联网和电子商务的快速发展,买菜系统成为越来越多人选择购物的方式。在这样一个系统中,商品的品牌与厂商管理是非常关键的一环。本文将探讨如何在买菜系统中实现商品品牌与厂商管理功能。首先,买菜系统需建...
    99+
    2023-11-01
    商品品牌 关键词:买菜系统 厂商管理
  • angular怎么实现商品筛选功能
    这篇文章主要为大家展示了“angular怎么实现商品筛选功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angular怎么实现商品筛选功能”这篇文章吧。一、d...
    99+
    2022-10-19
  • vue实现商品规格选择功能
    本文实例为大家分享了vue实现商品规格选择的具体代码,供大家参考,具体内容如下 动手之前要先确定自己的商品数据结构,下面是我的商品数据结构 dataInfo: {         ...
    99+
    2022-11-13
  • vue实现选择商品规格功能
    本文实例为大家分享了vue实现选择商品规格功能的具体代码,供大家参考,具体内容如下 要实现上图的效果,代码如下: <template>         <div ...
    99+
    2022-11-13
  • vue怎么实现商品多选功能
    这篇文章主要讲解了“vue怎么实现商品多选功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现商品多选功能”吧!具体代码如下<!DOCTYPE html>&...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作