Android商城开发----点击左侧分类列表右侧更新对应列表内容
Android商城开发----点击左侧分类列表右侧更新对应列表内容
目录
- Android商城开发----点击左侧分类列表右侧更新对应列表内容
- 一、首先说布局:
- 二、主要说一下,布局完成后实现点击左侧类别时,右侧展现对应类的商品列表。
- 主要思想:
- 源代码:
- 1.左侧Fragment发送信号
- 2.右侧Fragment 接受,右侧Fragment.java注册/反注册:
- 3.右侧Fragment.java中,在onCreateView()中初始化View:
- 4.订阅事件
- 5.在右侧RecyclerView的Adapter中,根据position配置商品信息
一、首先说布局:
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方法中
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//注册EventBus 注册在onCreate方法中EventBus.getDefault().register(this);}
@Overridepublic 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); //更新adapterrightRecyclerView.setAdapter(rightAdapter); //重新设置新的adapter// 这里我先打印了下,position的值,我设了三个分类 position是0,1,2Log.e(TAG,"onMessageEvent:"+event.getMessage());}
5.在右侧RecyclerView的Adapter中,根据position配置商品信息
Adapter.java文件:这里是写右侧RecyclerView内容的adapter文件
private List<Integer> listIcon=new ArrayList<Integer>();
private List<Integer> listTitle=new ArrayList<Integer>();
public CategoryListRightAdapter(Context context,int position){ //这里的position就是前面传过来的positionif(position==0){ //如果是第一个分类 加载哪个图片,哪个标题 这里个数要一致icons=new int[]{R.drawable.icon1, R.drawable.icon2};titles= new int[]{R.string.title1, R.string.title2};}else if(position==1){//如果是第二个分类 加载哪个图片,哪个标题 icons=new int[]{R.drawable.icon3, R.drawable.icon4};titles= new int[]{R.string.title3, R.string.title4};}else if(position==2){//如果是第三个分类 加载哪个图片,哪个标题 icons=new int[]{R.drawable.icon5, R.drawable.icon6};titles= new int[]{R.string.title5, R.string.title6};}else{//开始的时候,没有发生点击事件,设置adapter的时候默认传一个其他的值,刚点分类进去的时候显示所有列表icons=new int[]{R.drawable.icon1, R.drawable.icon2,R.drawable.icon3, R.drawable.icon4,R.drawable.icon5, R.drawable.icon6};titles= new int[]{R.string.title1, R.string.title2,R.string.title3, R.string.title4,R.string.title5, R.string.title6};}lContext=context;for (int i=0;i<icons.length;i++){listIcon.add(icons[i]);//把他们加进RecyclerView中listTitle.add(titles[i]);}}
Android商城开发----点击左侧分类列表右侧更新对应列表内容相关推荐
- Android商城开发----点击加入购物车,购物车商品的增删减
Android商城开发----点击加入购物车,购物车商品的增删减 上一章节:[分类页面]点击左侧类别,实现右侧对应类别商品的展示 本文是在上一章节基础上开发的,点击[分类]页面商品的加入购物车按钮,实 ...
- Android流媒体开发之-直播自定义分类
1.Android流媒体开发之-直播实现 2.Android流媒体开发之-直播自定义列表 3.Android流媒体开发之-服务器图片的加载 4.Android流媒体开发之-直播自定义分类 5.Andr ...
- Android商城开发----viewPager实现广告轮播(在首页Fragment中实现)
Android商城开发----在商城首页Fragment使用viewPager实现广告轮播 写在前面:本篇文章建立在创建底部导航栏之后,对商城首页进行开发.创建底部导航栏的内容请查看:Android开 ...
- Android商城开发系列
Android商城开发系列(一)--开篇 Android商城开发系列(二)--App启动欢迎页面制作 Android商城开发系列(三)--使用Fragment+RadioButton实现商城底部导航栏 ...
- ajax实现简单的点击左侧菜单,右侧加载不同网页
实现:ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带的服务器中打开浏览效果即可) 图片.png 原 ...
- Android商城开发系列(一)——开篇
最近在看尚硅谷的硅谷商城视频,想系统学习一下Android的商城开发流程,打算跟着视频的一步步做出一个商城,然后写博客总结记录一下整个商城的开发过程以及使用到的技术知识点,这个商城的最终效果如下图所示 ...
- 《Android Studio开发实战 从零基础到App上线》本书内容问题答疑
1.关于学习本书之前是否需要Java基础 问题:看安卓开发教程书需要很扎实的java基础吗? 回答:本书的零基础指的是安卓零基础,不是Java零基础,所以看本书之前需要一定的Java基础,基本的变量声 ...
- 湖南某科技大学 安卓Android移动开发基础期中考试笔记(持续更新)
湖南某科技大学 安卓Android移动开发基础期中考试笔记 前言 建议大家把第三章的三个实战演练和本笔记的所有代码部分都在AS中手打一遍,手打的意思是看懂之后自己写出来,而不是照着抄.这不90分就到手 ...
- Android应用开发最强原创知识体系(更新至2019.11.21)
Android应用开发最强原创知识体系 标签: 知识体系 为了方便大家的阅读以及自己的知识体系的建立,特意来写出这个引导文章.以前我是遇到什么写什么,想到什么写什么,从2016年开始我将围绕这个知识体 ...
最新文章
- 关键词与关键词之间的相关度计算
- int、long、long long __int64取值范围
- HDU5528 - Count a * b
- netflix_学习Netflix管理员–第1部分
- flask内置session原理
- 【软件质量】软件质量
- 7.边缘检测:2D运算——Canny的不同结果、单个2D边缘检测滤波器、实现边缘3种方法Matlab实战_3
- [设计模式-创建型]抽象工厂(Abstract Factory)
- 入门几款好的UML工具介绍
- ELK 收集 Tomcat 日志
- 基于Java保险员工管理系统的设计与实现
- 获取移动光猫(如HS8545M5等设备)pppoe密码明文
- iOS功能测试工具 Frank
- cocos creator微信棋牌小游戏 幼麟棋牌服务端分析笔记
- 浙大版《C语言程序设计(第3版)》题目集 习题4-6 水仙花数 (20 分)
- mac隐藏桌面图标快捷键_如何在Mac OS X桌面上隐藏图标
- petalinux uboot源码怎么打补丁
- 考系统集成项目管理工程师,报班还是自学?
- 充电误区那点事和电池医生类软件
- No MaterialLocalizations found.和No MediaQuery widget found的解决方法