Android商城开发----点击左侧分类列表右侧更新对应列表内容

本文介绍如何在Android商城应用中实现在左侧分类列表点击后,右侧实时更新对应商品列表。主要通过EventBus实现Fragment间通信,详细步骤包括布局设计、EventBus的使用、Fragment间的交互以及Adapter的更新。涉及关键代码示例和布局文件解析。
摘要由CSDN通过智能技术生成

Android商城开发----点击左侧分类列表右侧更新对应列表内容

一、首先说布局:

1.整个分类页是一个Fragment,在这个前面链接里,建的底部导航栏基础上做的,这页是分类的Fragment点击查看 ,同时本文在点击实现类别选中状态切换这篇文章的基础上做的,这篇文章识别了左侧点击的类别项目是哪个,为后续点击实现右侧列表展现做了铺垫。

2.我是在这个基础上自己写了两个Fragment,左侧一个Fragment:内部是一个RecyclerView,用来显示分类列表;右侧是一个Fragment:内部也是一个RecyclerView,显示的是商品列表,商品列表包含左侧商品Icon(ImageView),右侧是标题(TextView)。如下图所示:
在这里插入图片描述
关于布局的问题主要是RecyclerVIew的使用及Adapter的使用,这里先不说啦。布局代码在最下面!

二、主要说一下,布局完成后实现点击左侧类别时,右侧展现对应类的商品列表。

主要思想:

主要思想是,
1.左侧Fragment点击时使用EventBus发送信号(position点击的位置)(这个操作在左侧Fragment的RecyclerView的Adapter中实现的。),
2.右侧Fragment.java接收信号,识别出点击的是哪个类别。
3.Fragment.java将position传给RecyclerView的Adapter,根据类别,填充对应的Icon和Title。
(PS:
相关文章:EventBus使用详解这篇文章写的非常非常详细了,我就是参照这篇文章用的EventBus,你们也去学习一下吧!)

源代码:
1.左侧Fragment发送信号

EventBus发送方,如果不需要接收信号就不用进行EventBus的注册,直接写:

//把点击的选项position传给右侧Fragment
EventBus.getDefault().post(new MessageEvent(position)); 

位置放在左侧Fragment RecyclerView 的adapter中,具体位置如下图。
在这里插入图片描述
这是因为在切换选中背景一文中,我在这里判断了 点击的卡片,点击后切换背景颜色。同时,发送EventBus信号,让右侧的Fragment做出回应。

2.右侧Fragment 接受,右侧Fragment.java注册/反注册:

注册和反注册总是成对出现,注册在onCreate方法中,反注册在onDestory方法中

 @Override
    public void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        //注册EventBus  注册在onCreate方法中
        EventBus.getDefault().register(this);

    }
    @Override
    public void onDestroy(){
   
        super.onDestroy();
        //反注册EventBus  反注册在onDestory方法中
        EventBus.getDefault().unregister(this);
    }
3.右侧Fragment.java中,在onCreateView()中初始化View:
//onCreateView()
initView();

//在函数外面定义initView()方法
//定义初始化
    private void initView(){
   
        rightRecyclerView=root.findViewById(R.id.category_list_right);
    }
4.订阅事件

右侧Fragment.java中订阅事件:

//收到消息后,改变recyclerview的列表
//这里方法名可以任意取,但必须添加@Subscribe注解,在这里写下接收到信号后要做的事情
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageEvent(MessageEvent event){
   

       
        int position=event.getMessage();//获得传的信息,左侧点的是哪个选项
		//将position作为参数传给商品列表的Adapter,让Adapter判断添加对应的商品列表
        rightAdapter=new CategoryListRightAdapter(getActivity(),position); 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码不停蹄~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值