基于安卓的超市购物系统的设计与实现本科论文

上传人:无*** 文档编号:208261831 上传时间:2023-05-09 格式:DOC 页数:41 大小:2.10MB
返回 下载 相关 举报
基于安卓的超市购物系统的设计与实现本科论文_第1页
第1页 / 共41页
基于安卓的超市购物系统的设计与实现本科论文_第2页
第2页 / 共41页
基于安卓的超市购物系统的设计与实现本科论文_第3页
第3页 / 共41页
点击查看更多>>
资源描述
本 科 毕 业 论 文基于安卓的超市购物系统的设计与实现Design and Implementation of Supermarket Shopping System Based on Android 学院名称: 专业班级: 学生姓名: 学 号: 指导教师姓名: 指导教师职称: 毕业设计(论文)原创性声明和使用授权说明原创性声明作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明作者签名: 日 期: 目 录摘 要IAbstractII引 言1第1章 绪论21.1设计的目的和意义21.1.1设计的目的21.1.2设计的意义21.2设计的方法和技术31.2.1开发环境31.2.2面向对象的软件开发过程3第2章 系统分析42.1业务流程的概述42.2 可行性分析42.2.1经济可行性分析42.2.2操作可行性分析42.2.3技术可行性分析42.2.4运行可行性分析42.3系统结构分析52.3.1首页模块52.3.2商品分类模块52.3.3购物车模块52.3.4订单模块52.3.5个人中心模块5第3章 总体设计73.1系统功能结构73.1.1客户端73.1.2服务端83.2软件的体系结构93.3界面设计9第4章 详细设计与实现104.1基类功能类设计104.2 首页模块114.2.1首页模块架构114.2.2广告页面的实现114.2.3附近店铺,促销专场和名优特产的实现144.2.4礼券的实现154.3分类模块的设计154.3.1分类模块架构164.3.2分类界面的实现164.3.3商品目录界面的实现174.3.4商品界面的实现184.4购物车模块的设计184.4.1专购物车模块架构194.4.2 购物车的实现194.5订单模块的设计214.5.1订单模块架构214.5.2提交订单模块的实现214.5.3订单模块的实现234.5.4订单详情页面的实现254.5.5支付页面的设计254.6我的模块的设计274.6.1我的模块架构274.6.2管理地址的实现274.6.3分享朋友的实现284.6.4登录/注销的实现29第5章 系统测试305.1测试的目的及环境的部署305.2测试的准则305.3测试的方法315.4测试内容315.5测试实例和测试结果315.5.1界面测试315.5.2其他方面的黑盒测试32结 论33致 谢34参考文献35II基于安卓的超市购物系统的设计与实现摘要:在现代生活中,安卓智能手机的各类应用所带来的便利已经影响我们生活的方方面面,对人们的生产生活、衣食住行产生了积极的作用。同时,手机智能平台的快速发展也给各行各业带来了新挑战,对于任意行业,如果不能适应信息化的潮流、跟上时代发展的步伐,都会被残酷的市场竞争所淘汰。本论文课题是基于安卓的超市购物系统的设计与实现,利用移动开发技术初步实现了用基本的智能手机来管理超市的日常经营。该系统改善了传统购物体验的多种弊端,最终目的当然就是给用户提供一种方便的购物体验。本设计是基于安卓的一款便于在智能平台上购物的手机APP,开发工具是Android Studio,编程语言用的是Java,开发实现了引导界面、可自由加载和转换的菜单以及其他模块的功能。用手机代替超市实体店从而实现了足不出户的手机超市购物,为人们节约了排队等待付款、挑选商品的时间。本系统有较强的实用性,因为手机携带很方便,该APP操作起来也不费力,要实现的功能也相对完善,一些购物系统的经典页面比如添加商品至购物车中、查看已提交的订单、秒杀很多做活动的商品等也能正常运行和显示,更重要的是本软件已在市内的若干超市进行成功的模拟测试,并成功进行了小规模的实际应用,反馈回来的信息表明其市场应用前景非常广阔。关键字:安卓开发 Java程序设计语言 超市购物系统Design and implementation of supermarket shopping system based on AndroidAbstract: In modern society, the convenience brought by the various applications of mobile phones has benefited all aspects of our lives, giving the production and living of the people and basic necessities of life a positive effect. At the same time, the rapid development of intelligent platform also brings new challenges to all walks of life, for any industry, If you can not adapt to the trend of information, to keep up with the pace of development of the times, you will be buried by the brutal competition in the market. The topic of this thesis is the design and implementation of the supermarket shopping system based on Android, using mobile development technology to achieve a preliminary realization of the basic smart phone to manage the daily operation of the supermarket. The system improves the traditional shopping experience of a variety of drawbacks, of course, its final purpose is providing a novel and convenient shopping experience.The design is based on Androids mobile phone APP to facilitate shopping on the smart platform, using Android5.0 as a development tool, Java as a programming language, the development and implementation of the boot interface, free to load and convert menus and other modules of the function. Using a mobile phone instead of a supermarket store so as to realize the online shopping at home, for the public to save the queue to wait, long distance run time.The system has strong practicability, because it is convenient to carry a mobile phone, the system is easy to operate, to achieve the function is relatively perfect, some of the classic shopping system pages, such as adding merchandise to the shopping cart, view submitted orders, spike a lot of activities to do the goods, etc. can also be normal operation and display, and this software system has been in the supermarket and a fast-food chain through the simulation test under the LAN environment, and successfully carried out the practical application of small scale, the feedback information indicates that the market has a very broad application prospects.Key words: Google android SDK Java programming language Shopping system33引 言现在的社会经济和网络发展得愈来愈快,喜欢在手机购物的人越来越多,传统的购物方式已经满足不了人们追求方便快捷的购物心理,现在手机已经是人们不可缺少的一部分,几乎每个人都有手机,它也是人们生活中必不可少的沟通工具。基于手机端的在线购物系统能使人们随时随地选购自己喜欢的商品,现在国内的很多中、小型超市每天都要查看库存信息还要及时更新订单信息等,可是经济市场的变化不会等待,所以高效的、现代化的管理超市的方法就受到了各大、中、小型超市的喜爱。各种实体店超市给我们的生活带来了很多便利,不可避免的是这些实体店超市也有各种缺点,如:每天都要处理入库的大量商品导致其效率降低,时刻都需要有人结算付款,人工的速度当然是有限的而且特别容易有细微的差错,每次有活动的商品都要重新打印价签,其效率一定不会高。另外一方面,对于一个稍微有规模的超市来说,每天都会有商品的入库、销售和更新等信息需要处理,这些都要一些有经验的管理人员进行决策、分析和处理,不像计算机或者手机能实现实时分析,这样,这些管理人员一直都不能对及时传递的资料进行分析和研究。因此,在进行市场调查之后,我选择了超市购物系统设计题目,这种用手机客户端实现的购物平台能实时、精确的掌握超市中的各项工作的工作情况,从而能使超市管理者在最短的时间、最少的人力物力的情况下加速商品的周转率,这样做还能满足客户的需求并提高服务质量,也能够很好的处理产品售价的更新等销售问题,让超市的管理人员面对市场变幻莫测的情况做出最适合最正确的决策,这在一定程度上就加快了超市的经营效率。我设计的这个购物系统实现的功能主要有:新用户注册登录,浏览新添加和原来的商品,购买想买或者需要买的商品,添加要买的商品至购物车中,查看刚完成的和历史的订单等功能;管理员能够处理更新用户、添加删除商品信息、处理订单信息、等功能。超市购物系统目前在各个商业领域都发挥了很大的作用,也得到了越来越多的大、中、小型超市的应用。第1章 绪 论1.1设计的目的和意义通过对市场的调查和对未来前景的分析,针对目前大多数中、小型超市的实际需求,开发了这款手机购物APP。作为一家超市工作人员,每天都要分析研究商品的入库、销售、更新等各种信息,设计本系统的最终目的是要提高超市的销售额,给这些超市带来更多的经济效益。在一定程度上也实现了超市实体店与互联网、手机的有效结合,促进了周边地区的消费和超市的收入。1.1.1设计的目的随着时代的发展,网络已经被应用到很多行业和领域。现如今,信息技术和网络的发展给商家们提供了一个更广阔的商品推广渠道。借助于支付方式的不断完善,开发超市购物APP应用,不仅给商家带来成本低廉的宣传、推广、销售等好处,还可以帮顾客节约时间,减去排队等候付款的烦恼,感受全新的购物体验。设计此手机超市购物应用,使超市管理员能够很方便地查询商品销售情况以及对商品种类、价格进行添加、删除,以促进营业额的上升,提高工作效率,节省了成本。该软件的设计目标是尽量降低人力与物力资源的消耗,提高处理数据的速度,面向各超市,实现对商品进行有序快速的交易。1.1.2设计的意义我这次设计的是一个基于Android的超市购物系统,超市管理者或者消费者用一部普通的Android手机,登录进入该软件,就可以对商品进行一些基本操作。该购物软件成功地让使用它的人不用非要在电脑端购物,也不用抽大量的时间去超市查询各类商品。只要拥有Android手机,用户就可以随时随地的购买商品。对超市管理者而言,在网络平台上销售商品使得库存的压力变小了、成本变低了,况且管理者用手机就能看到新老顾客购物过后的反馈信息和建议,这样方便经营者调整营销战略,获得更大的收益。手机购物打破了传统商务的障碍,对很多消费者、各中、小型超市还有经济市场起到了很大的影响,顺应了社会的发展,使购物更加便利而又人性化。1.2设计的方法和技术1.2.1开发环境 系统的软硬件平台表1-1硬件运行环境的配置要求: 环境 配置 CPU 建议i7 内存 建议4G以上 硬盘空间 建议8G以上表1-2软件运行环境的配置要求: 环境 配置 操作系统 Microsoft 10 数据库 SQL Server 开发工具 Android Studio1.2.2 开发语言面向对象是当前相对而言比较流行的一种程序设计思想,其基本的设计思路是使用对象、类、方法等基本的软件设计概念来进行程序开发复用性增强。对象是指现实世界中客观存在的事物拟物成软件系统的组成元素,并且在软件系统开发过程中运用人类自己的自然思维方式进行软件开发过程。面向对象技术强调在软件开发过程中面向客观世界真实存在的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物8。面向对象技术的基本特征主要有封装、继承和多态5。(1)封装:封装是指将具有一致的属性和行为的对象抽象成单独的类。一个类就是这样的一种单独的抽象模式,它包含了与程序的对象有关的重要的性质,而忽略其他无关的内容。任何类的划分都是我们主观意义上的,但是类的划分必须是和我们设计的程序有关13。 (2)继承:继承性是子类共享父类数据结构和方法的一种方便的实现代码结构完整性的机制,子类可以共享父类的全部公有描述,但是还可以进行必要的修改和扩充13。 (3)多态:多态性使指相同的操作或函数其过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态指允许每个对象以适合自身的方式去响应共同的消息8。多态性增强了软件的灵活性13。第2章 系统分析2.1业务流程的概述用户进入首页后看到的界面从上到下依次是位置定位、新品图片、功能条款、秒杀促销,用户点击“分类”即可进入所有的商品列表,在商品列表界面点击任意商品,用户就能了解该商品的详细信息。若用户喜欢该商品,可将其加入购物车,随时结算,提交订单,即完成了一次购物。2.2 可行性分析该系统从经济、操作、运行、技术多个方面进行分析其可行性,按照我本人对Java程序设计语言和安卓知识的了解,本系统的可行性分析主要从以下四个方面进行介绍。2.2.1 经济可行性分析该系统要用到的Android Studio软件获得很便捷,就是直接从网上下载,不需要任何费用,并且该系统又是我自己独立完成,可以节省很多花销,在一定程度上也提高了自己的动手能力。2.2.2 操作可行性分析该软件操作起来非常简便,只要会用安卓手机的人都可以轻松上手,软件的所有购物流程都使用了很好用的交互界面,操作起来也很简单便利,用户也不用非要掌握它的工作原理和流程。所以来说,该软件在操作方面是可行的。2.2.3 技术可行性分析从事IT行业的人们一般至少都要懂得计算机和手机的一些基础知识,也就是说一定要有一定的软硬件基础知识,也要会用各种基本的管理软件。在现在社会人们都有或多或少的电脑知识,跟不用说企业高层的管理层人员了,只要会一些电脑知识,在投入使用已设计好的新软件时,只要培训一些少量的管理人员,软件就能够顺利的使用和运行了,因为其后台管理界面友好,整个软件的功能和使用方法也能够被大多数员工了解并掌握,操作管理员即使不会任何数据库知识也能很快使用。2.2.4 运行可行性分析本系统为一个简单的手机网上购物系统,所消耗的资源比较少,电脑配置能够支持开发软件的正常运行,又由于开发环境的搭建成功,所以本系统运行上是可行的。2.3系统结构分析本系统是一款在智能手机上网上购物的应用, 总共分为五个大功能模块:首页显示模块、商品分类模块、添加购物车模块、查看订单模块、个人中心模块,主要目的是设计一款方便消费者在手机上超市购物的应用。2.3.1首页模块首页模块显示的首先竖列的秒杀信息和横向的广告,横向能左右滑动竖向能上下,用户在首页上方或下方秒杀商品处点击商品的图片就能进入到该商品的详情页面,在详情页面中用户可根据自己的需要将该商品加入购物车或者直接购买,数量也是可自由增加或减少的,也是附近店铺,促销专场,礼券,钱包等功能的入口界面。2.3.2商品分类模块在商品分类模块用户可以选择查看不同类别的商品,比如食品部和联营部等等,每一类别的商品又有不同的分区,例如生鲜类就包括蔬菜和杂粮分区。每一个分区又包含了很多商品种类,此时点击这些商品种类,会显示这类商品的全部品牌,用户根据自己的喜好来选择不同品牌不同类别的商品。丰富而又不复杂的分类模块能让用户简便快速找到自己心仪的商品。2.3.3购物车模块用户在查看购物车之前须先登录自己的账号和密码,没有登录的话该界面会提示“请登录”的消息。该模块能实现的功能有:将要买的商品添加至购物车中、编辑商品数量直到满足自己的需求、把加入购物车中的商品显示出来。2.3.4订单模块该模块的功能有:提交已付款的订单、选择适合自己的支付方式、全部费用结算、查看已完成的和未完成的订单。在购物车中确定要买的商品进行费用结算,然后完善收货信息(对于备注,可表明对商品的需求)就完成了订单,跳转到支付页面,显示若干种付款方式,用户按照适合自己的付款方式,此项订单就产生了。2.3.5个人中心模块个人中心模块主要包括:管理收货地址、服务与用户反馈、配送管理、帮助说明、给朋友们推荐使用该应用。例如:增加新的收货地址或者删除已经不用的收货地址,服务与用户反馈则给客户提交自己建议的空间,主要是一些辅助功能。 第3章 总体设计3.1系统功能结构该系统分为客户端和服务端:客户端主要是用户的注册、登录、浏览商品、选购商品、加入购物车、查看订单;服务端主要是管理员对用户、商品、订单的管理,在整个系统中他们具有不同的功能和权限。该软件系统功能结构图如图3-1所示:图3-1系统功能结构图3.1.1 客户端客户端是供用户购物的,其包含了用户的注册与登录、浏览商品、加入购物车、查询订单、支付等功能,它负责直接和用户交互的功能。用户进入软件如果以前注册过就会把以前加入购物车的记录和订单记录重新显示,只有登录过后才能把商品加入购物车或够买商品,没有登录的话系统会跳到登录界面提示用户先登录,在用户注册的时候必须用不同的信息注册,例如用户的手机号以前注册过就会提示用户此手机号已注册,当用户购买的时候用户能根据支付方式去选择自己需要的支付方式,只有在输入正确的用户名和密码的情况下才能购买,否则会提示密码错误,当购买成功后会调到购买成功界面,其功能流程图如图3-2所示:图3-2 系统流程图3.1.2 服务端服务端主要用于服务端的管理员管理用户、商品和订单等方面,用户包括用户名、密码、电话等一些个人信息,商品包含商品名、图片、价格、数量等信息,订单包括时间、地址等属性信息。其E-R图如下3-3所示:图3-3 E-R图3.2软件的体系结构本软件是典型的Android 超市购物客户端, 采用建立在Android系统之上的Application Framework 应用程序架构。本软件遵循M V C 架构设计原则, 即数据( 模型, Model ) 、视图(View) 和控制器(Controller), 三层有自己所要完成的任务,但又相互联系。模型层中主要封装了要用到的实体类,因为这些类要重复利用,本软件主要数据来源于服务器, 数据层中存储了所有数据列表的信息、图片列表信息, 内容以JSON 文件形式保存于缓存空间里,这些JavaBean主要就是封装从服务器请求数据的信息。控制器层封装了一些程序的逻辑。为视图层展示做准备,控制器主要负责本项目的逻辑部分, 包括数据调用逻辑、数据计算与视图关系的逻辑处理等等。逻辑层在代码上主要表现为各个视图控制器, 设置了整个应用各个视图之间如何切换, 数据关系如何协调等,其中在本次设计中我使用了很多的方法来简化代码,也是衔接视图层和数据层最重要的部分。视图层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果Google 提供了Android视图层中的各个类, 自己可以对各种基本控件进行组装和排版, 构成应用需要的特定的视图控件, 如软件标题设置红底白字、在用户体验至关重要的点击处理过程中, 大部分控件设置了相应的视觉效果, 如各种控件按钮点击后变色、背景图片和部分视觉效果等。3.3界面设计目前Android界面设计的方法主要有两种:第一种是用Java编写的代码实现。第二种是基于xml的实现。对于界面设计而言,客户端注重用户的操作体验和页面之间的层级关系。受“屏幕小、触屏操作容易出现错误、网速的限制问题”等的条件制约,移动的UI设计需要考虑精简页面布局、提高图片的加载效率、减少输入等问题。具体办法可以这么做:(1)对原有的信息进行简要整合分析并重组,避免页面布局的复杂性。(2)为了更多的展示信息,本软件整体用Fragment和ViewPager实现让用户既能点击下面的按钮切换又能左右滑动来切换不同的功能界面。(3)以精简为主。考虑到手机屏幕的尺寸问题,因此页面内容要足够的精简,这就要求主元素内容要够“大”,同时去掉不必要的元素。第4章 详细设计与实现本章主要阐述了首页模块,所有商品各种分类模块、整理购物车模块、处理所有订单模块、个人中心模块五大模块的详细内容, 并且详细介绍了各个模块主要功能的实现方法。每块功能都用实际效果截图来更加清晰的展示了该模块用到的知识和技术,接着用部分典型功能的实现代码来进行进一步说明。4.1基本功能类设计在基类功能模块中,主要实现了各模块所用到的一些复用类以及若干视图控制器类,主要是视图控制器方法的封装,供各个实体控制器调用,这里说几个。1. UtilTool类为了提高性能,利用线程池创建线程了10个线程利用handler和接口回调供各实体控制器调用,调用此类能得到正确的返回的字符串,和错误的信息然后供调用者根据不同的返回信息进行不同的处理。2. UserManager类该类是工具类,是保存一些信息到本地,主要用途是封装用户的数据到本地,例如登录记录,钱包登录记录,当用户再次登录的时候不用再次输入,提高用户体验,供各个实体类调用。3.StringUtils类该类是一些字符串的转换,主要功能是一些验证的正则表达式,对手机号的验证,邮箱的验证double和int的转换,取整和保留位数的使用。4. MD5key类和Coder类整两个类是加密类,MD5key是用来MD5加密,当用户注册的时候密码直接用MD5加密,因为MD5加密是不可逆的和唯一的,所以直接把MD5加密后的字符串存到数据库,登录验证的时候也用MD5加密的字符串验证,Coder是RAS加密的工具类,该类用于当用户支付的时候和转账的时候确保安全性。5. AddBuyCar 这两个类会在带有加入购物车功能的界面用到,用来添加商品到购物车,为了提高代码的复用性,我把这这个功能封装成一个类4.2 首页功能模块首页功能模块是用户进入软件后首次看到的模块主要用来浏览广告列表、进入附近店铺,钱包,促销专场,名优特产,滴购,礼来了等功能的入口,用户可根据需要选择点击进入任意功能,这个模块也是整个购物软件中最重要的功能模块。4.2.1首页功能模块架构首页包括广告页和内容页, 分别由Scrolview ,ListView和ViewPager三个控件实现。ListView控件控制竖向的广告,ViewPager控件控制横向的广告,Scrolview主要的作用是控制整体滑动。Include 封装了八个入口列表视图, 而由于主页场景中分布了多个功能模块的视图界面, 此页面作为主页界面, 该页面中同时包含了其他模块的部分逻辑功能,也是其它模块的入口。主页模块主要涉及了若干视图类, 封装了程序的主要应用逻辑以及界面布局构造。主要的类如下:1. FirstpageFragment 类该类是的软件首页类, 首页的所有控件都是在此类中实现。该类盛放了首页的所有控件和逻辑。2. Typesleftadapter类该类继承于BaseAdapter,主要是Listview控件的数据的填充,主要实现了省份列表各视图的设计,提供了主页列表单元格的共有模型,点击此控件城市和店铺会跟随变化,其他入口的界面也会更具不同的选择具有不同的变化。 3.Typesadapter类 该类是GridView的适配器,GridView的所有数据填充都在此类中。4.2.2 广告页面的实现ViewPager 是Android开发中最常用的基本视图控件之一, 用于构建横向列表视图控件。软件中所有列表控件, 如五个主要视图的切换、横向广告的切换列表均使用了ViewPager控件进行列表的构造。通过FirstPageradapter适配器事项横向列表数据的填充。FirstPageradapter继承于PagerAdapter( 滚动视图) , 可对各种列表拖动过程操作进行控制和监控。ViewPager 通过重写instantiateItem 和destroyItem 的委托方法来读取数据和实现数据的加载销毁, 涉及的主要方法和相应逻辑如下:1.列表中横向广告数量: Override public int getCount() return Integer.MAX_VALUE; 让适配器默认返回最大值返回无数多个用于循环滑动2.返回需要显示的视图: Override public Object instantiateItem(ViewGroup container, int position) position %= listimage.size(); ImageView view = listimage.get(position); ViewParent vp =view.getParent(); if (vp!= null ) ViewGroup parent = (ViewGroup)vp; parent.removeView(view); container.addView(view); return view; 。返回列表中对应的对象,包含了图片、文本等多种视图控件和一部分排版逻辑代码。设计样式具体如图4-1所示:图4-1ViewPager效果图实现的关键代码: private void initImageView() listimage = new ArrayList(); for (int i = 0; i list.size() * 100; i+) final int a = (i % list.size(); final ImageView imageView = new ImageView(getActivity(); imageView.setTag(list.get(a).getbGoodsORStoreNo(); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) String page = (String) imageView.getTag(); if (page.equals(2) Intent intent = new Intent(getActivity(), GoodsDetailsActivity.class); intent.putExtra(storeno, list.get(a).getcStoreNo(); intent.putExtra(goodsno, list.get(a).getAdcGoodsNo(); intent.putExtra(type, FirstpageFragment); intent.putExtra(cMall_No, list.get(a).getcMall_No(); startActivity(intent); else if (page.equals(1) Intent intent = new Intent(getActivity(), AroundContentActivity.class); intent.putExtra(storeno, list.get(a).getcStoreNo(); intent.putExtra(storename, list.get(a).getcStoreName(); intent.putExtra(cMall_No, list.get(a).getcMall_No(); intent.putExtra(type, FirstpageFragment); startActivity(intent); if (page.equals(0) Intent intent = new Intent(getActivity(), WebViewActivity.class); intent.putExtra(url, list.get(a).getAdSkipUrl(); Log.i(tag,list.get(a).getAdSkipUrl(); intent.putExtra(cMall_No, list.get(a).getcMall_No(); startActivity(intent); ); listimage.add(imageView); FirstPageradapter firstPageradapter = new FirstPageradapter(listimage); viewpagerfirst.setCurrentItem(Integer.MAX_VALUE / 2); viewpagerfirst.setAdapter(firstPageradapter); problem(); for (int i = 0; i listimage.size(); i+) Picasso.with(getActivity().load(URLConfig.imageUrl + list.get(i % list.size().getAdImagePath().into(listimage.get(i); 使用ListView实现加载数据madapter = new FirstListAdapter(getActivity();id_listview.setAdapter(madapter);利用ListView实现加载竖向的数据ListView是应用中使用数量最多的控件也是应用中最流行的数据加载控件。在现在的开发模式中, 用到了listView和ViewPagerd的功能这一功能是非常流行的,这样既能横向滑动用能竖向滑动,也是用户最为接受的,同时进行了创新的用户界面设计。由于动作逻辑和实现代码非常相似, 故本节介绍该功能的操作流程。其实现的效果图如下图4-2所示:图4-2实现的效果图关键代码如下:Overridepublic View getView(int position, View convertView, ViewGroup parent) ViewHold viewHold; if (convertView = null) viewHold=new ViewHold(); convertView = LayoutInflater.from(context).inflate(R.layout.firstlistadapter, null); viewHold.imageView= (ImageView) convertView.findViewById(R.id.imagefirst); convertView.setTag(viewHold); else viewHold= (ViewHold) convertView.getTag(); String url=list.get(position).getAdImagePath(); url= URLConfig.imageUrl+url; Picasso.with(context).load(url).into(viewHold.imageView); return convertView;class ViewHold ImageView imageView;4.2.3附近店铺,促销专场和名优特产的实现这三个模块基本实现都一样都是用ListView显示要加载的数据,附近店铺就是用户最近的商店,促销专场是用来显示商家要促销的商品,名优特产是一些有特价的商品在现在的开发模式中, 用到了listView的Contentview的复用功能,这样既能友好的展示,还能防止内存溢出,所以本软件的各个模块均使用了此功能。其界面基本类似如图4-3所示。图4-3实现的效果图4.2.4礼券的实现礼券的主要功能就是展示商家发的优惠券,用户领取以后会根据后台的处理省去一些钱,其主要功能就是根据商家的需要去销售商品,礼券上展示的主要有此礼券可用和当消费费用达到多少时能用,主要实现也是用到了用到了listView的来展示,能够更具服务器的个数动态展示。由于动作逻辑和实现代码非常相似, 故本节介绍该功能的操作流程。其实现的效果图如下图4-4所示:图4-4实现的效果图4.3分类模块的设计分类模块是用户主要用来浏览商品列表、通过进行对商品的过滤查看想要的商品详情的部分,用户可根据选择点击进入任意应用详情界面。4.3.1分类模块架构分类模块主要由主页和内容页两个页面组成, 分别由ListView,TabLayout 和GridView 三个视图控制器控制。ListView视图显示总分类的商品, 点击ListView对应的Item,TabLayout的数据和GridView的数据会发生变化,点击TabLayout后GridView的内容也会显示对应中类下的商品,根据用户的需要能进入商品目录,或商品详情界面。分类模块主要涉三个主要控件,和三个对应的数据适配器类。主要的类如下:1.Typesleftadapter类该类是分类的大类适配器类,在该类中主要是调用各个基类的方法实现界面UI的设计。 2.Typesadapter类 该类是GridView的适配器,GridView的所有数据填充都在此类中。该类是分类内容小类页面,通过调用基类中的方法统一管理了应用正文页面中UI的布局和其他手势的视图逻辑。通过几点可以调到商品列表页面。4.3.2 分类界面的实现其主要实现的代码为:private void initleft() /初始化左面的适配器 if(typesleftadapter=null) typesleftadapter = new Typesleftadapter(getActivity(); typesleftadapter.setData(typeleftlist); leftlistview.setAdapter(typesleftadapter); leftlistview.post(new Runnable() Override public void run() if (leftlistview.getChildAt(0) != null) leftlistview.getChildAt(0).findViewById(R.id.visible).setVisibility(View.VISIBLE); );private void inittop() tabLayout.removeAllTabs(); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);/设置tab模式能滑动 for (int i = 0; i typetoplist.size(); i+) tabLayout.addTab(tabLayout.newTab().setText(typetoplist.get(i).getGrName2(); private void inittypes() if(adapter=null) adapter = new Typesadapter(getActivity(); typesgridview.setAdapter(adapter); adapter.setData(typesitemlist); adapter.notifyDataSetChanged(); 在应用列表界面的设计主要还是调用requestDataleft,requestDataTop和requestDataSmall中的方法,来进行页面的数据的请求,然后进给ListView,TabLayout,和GridView数据的填充。分类实现的效果和搜索实现的效果如下图4-5,4-6所示: 图4-5分类界面实现效果图 图4-6搜索界面实现效果图4.3.3.商品目录的实现该类继承于AppCompatActivity,主要实现了分类列表各视图的设计,提供了分类商品下的各种对应商品的列表,实现起来比较简单,效果如图4-7。 图4-7商品种类的实现效果图4.3.4 商品列表的实现该类是继承于AppCompatActivity类,是GoodsListActivity中ListView点击以后进入的界面类,主要显示此种商品下对应的所有商家的商品,通过点击加入购物车图标调用AddBuyCar类实现加入购物车功能,效果如图4-8。图4-8每种商品的添加购物车实现效果图4.4购物车模块的设计购物车模块是用户主要用来浏览已添加到购物车的商品列表、进行购买前数量的选择和取消添加的部分,用户可根据选择点击加减按钮进行数量的选取和删除,也是最复杂的一个模,本节主要阐述的是购物车模块内部的技术实现方法。4.4.1购物车模块架构购物车模块主要由ListView控件实现,ListView界面中嵌套RadioButton,Button等控件。主要有商品的数量改变的点击事件,和一些价格的运算,购物车模块主要涉及了三个视图控制器类,一个是数据封装类Buycar,主要是封装购物车要显示的主要信息,另一个就是加入购物车的类AddBuyCar主要作用是逻辑处理和数据提交。主要的类如下:1. BuycarAdapter类该类是继承BaseAdapter类,是购物车中ListView数据填充的类,购物车所有逻辑的实现和各种点击事件的处理都在这个类中实现,这个类也是此软件最复杂的ListView的适配器。4.4.2购物车的实现其主要实现方法和商品分类一样都是Fragment忠放ListView然后用BucarAdapter填充listView数据,其中加入购物车的方法有两种,一种是手动加入购物车,另一种是打开软件登录的时候会根据用户以前的购物车的商品从服务器请求加进去,重新显示,其主要代码如下:1.打开软件首次加载:public void requestData() String userno = UserManager.getUser(getActivity(); String data = name=cOSS_No: + SendMessage.cOSS_No + ,cMall_No:,userNo: + userno + ; Log.i(tag,data); UtilTool.get(URLConfig.requestBuycar, new UtilTool.Callback() Override public void response(String url, String str) try Log.i(tag,str); JSONObject obj = new JSONObject(str); String resultStatus=obj.getString(resultStatus); if(resultStatus.equals(1) JSONArray array = obj.getJSONArray(dDate); Gson gson = new Gson(); list = gson.fromJson(array.toString(), new TypeTokenList() .getType(); adapter.setData(list); Log.i(tag,购物车+list);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!