版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CommonAdapterCommonAdapterShopCarListListViewPayButton支付页面图4-3逻辑图从逻辑上面看,是ListView加载数据设计。可以为ListView创建一个CommonAdapter简单的适配器[9],并把在商品详情页上获取到的数据,从MyApplication上的ShopCarList中加载进适配器中,再从ListView上以列表的形式展现出来。在展示好数据的ListView上,通过点击相应的Button按钮,跳转到支付页面上。如图4-3逻辑图所示和表4-7所示:表4-7类的功能定义类功能ShopCarList暂存、传递数据CommonAdapter适配数据ListView列表显示视图PayButton前往支付按钮4.7网购商城个人中心功能模块的设计购物商城APP中的个人中心页面,是为用户在使用购物商城APP是提供更方便体验的模块。在这个页面上,有用户登录、收藏、分享和设置等。顾名思义,其中用户登录就是登录用户自己的账号,收藏则可以查看自己之前浏览的感兴趣的商品,同时还可以在商品出现降价时通知用户,然而分享则是可以把购物商场APP应用分享推广给用户的好友或其他用户。个人中心的设计详情表如表4-8所示:表4-8个人中心设计详情表Activity功能UI布局CollectActivity收藏模块collect.xml、item_collect_listview.xmlLoginActivity用户登录模块login.xml、register.xml5网购商城的实现5.1网购商城欢迎界面的实现当用户点击打开购物商城App后,首先在SplashActivity中先把欢迎界面图片加载进来。代码如下所示:setContentView(R.layout.activity_splash);然后为SplashActivity开启一个线程,禁用返回键并持续三秒后跳转到商城主界面上,其代码如下:newHandler().postDelayed(newRunnable(){ @Overridepublicvoidrun(){ Intentintent=newIntent(); intent.setClass(SplashActivity.this,MainActivity.class); startActivity(intent); finish(); } },3000);if(keyCode==KeyEvent.KEYCODE_BACK){ returntrue;}加入欢迎界面,图片为购物商城手机的效果如图5-1所示:图5-1购物商城欢迎界面5.2网购商城界面及底部菜单栏的实现首先在MainActivity类中继承FragmentActivity类,其代码如下:publicclassMainActivityextendsFragmentActivity然后在其中定义一个FragmentTabHost对象和LayoutInflater对象,其代码如下:PrivateFragmentTabHostmTabHost;privateLayoutInflaterlayoutInflater;然后定义一个商城界面数组fragmentArray和底部菜单栏的选项按钮数组mImageViewArray和选项按钮文字标识数组mTextViewArray,其代码如下:privateClassfragmentArray[]={HomeFragment.class,BuyFragment.class, PeopleFragment.class};privateintmImageViewArray[]={R.drawable.tab_home_btn,
R.drawable.tab_buy_btn,R.drawable.tab_people_btn};privateStringmTextViewArray[]={"首页","购物车","个人中心"};在加载好底部菜单栏的布局后,定义一个initView方法,把HomeFragment.class、BuyFragment.class、PeopleFragment.class三个Fragment加载进MainActivity中实现关键代码如下所示:privatevoidinitView(){layoutInflater=LayoutInflater.from(this);mTabHost=(FragmentTabHost)findViewById(android.R.id.tabhost);mTabHost.setup(this,getSupportFragmentManager(),R.id.realtabcontent);intcount=fragmentArray.length;for(inti=0;i<count;i++){TabSpectabSpec=mTabHost.newTabSpec(mTextViewArray[i]) .setIndicator(getTabItemView(i));mTabHost.addTab(tabSpec,fragmentArray[i],null);}}加载底部菜单栏选项按钮,其代码如下:privateViewgetTabItemView(intindex){Viewview=layoutInflater.inflate(R.layout.tab_item_view,null);
ImageViewimageView=(ImageView)view.findViewById(R.id.imageView1);imageView.setImageResource(mImageViewArray[index]);TextViewtextView=(TextView)view.findViewById(R.id.textView1);textView.setText(mTextViewArray[index]);returnview;}最后分别在HomeFragment.class、BuyFragment.class、PeopleFragment.class上重写onCreateView方法,把布局对应的布局文件加载。以下是HomeFragment中的关键代码所示:publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer, BundlesavedInstanceState){ Viewview=inflater.inflate(R.layout.fragment_main,null);returnview;}商城界面及底部菜单栏的实现如图5-2所示:图5-2商城界面及底部菜单栏的实现5.3网购商城首页的实现商城首页的实现不算复杂,布局方式是采用多重嵌套实现,如图4-3嵌套布局所示:图5-3商城首页UI布局顶部是网购商城APP的导航栏,是RelativeLayout布局并在其中添加的一个TextView控件。然后在嵌套中又添加四个LinearLayout,用来放置八个ImageView控件,每个ImageView控件代表一个手机品牌。如图5-4手机品牌布局所示:图5-4手机品牌布局然后定义好导航栏中RelativeLayout控件和textView1控件的属性详情。如表5-1所示:表5-1导航栏中控件属性详情控件标签属性RelativeLayoutandroid:layout_widthmatch_parentandroid:layout_height46dpandroid:gravitycenterandroid:background#CD0000textView1android:textColor#FFFFFFandroid:text首页再为八个ImageView添加单击事件监听器,当用户触摸设置有单击事件监听器的ImageView时,就会触发跳转事件,实现跳转到二级菜单商品详细情况的页面上。最后为八个商品详细情况页面添加购物车和加入收藏的功能,通过单击按钮,实现把商品加入购物车或收藏的页面。单击事件监听器触发跳转事件的关键代码如下所示:classappleCheckedListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){Intentintent=newIntent();intent.setClass(getActivity(),AppleShopActivity.class);getActivity().startActivity(intent);}}以下为二级菜单页中加入购物车按钮的单击事件监听器跳转代码:publicvoidonClick(Viewarg0){ CollectApplication.CollectList.add(1); Toast.makeText(AppleShopActivity.this,"已加入收藏", Toast.LENGTH_SHORT).show(); finish();}以下为二级菜单页中收藏按钮的单击事件监听器跳转代码如下:publicvoidonClick(Viewarg0){ MyApplication.ShopCarList.add(1); Toast.makeText(AppleShopActivity.this,"已加入购物车", Toast.LENGTH_SHORT).show(); finish();}苹果二级页面如图5-5所示:图5-5二级菜单页5.4网购商城购物车的实现在购物车页面中,UI的布局也离不开多重RelativeLayout和LinearLayout的相互嵌套,如图4-6购物车UI布局所示:图5-6购物车UI布局其中包括一个ListView控件、一个ImageView控件和一个TextView控件。ListView控件则是配合加载商品使用的,然后和首页一样,顶部也有相同的导航栏。下面是表5-2购物车UI布局中控件的属性详情表:表5-2购物车UI布局中控件的属性详情表 控件标签属性lv_buyandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_alignParentLefttrueandroid:visibilityvisibleimageView1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:src@drawable/iconshoppingtextView2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_below@+id/imageView1android:layout_centerHorizontaltrueandroid:layout_marginTop26dpandroid:text你还没添加商品而ImageView和TextView是在当没有商品时显示一个购物车图案和文字“你还没添加商品”,图5-7展示空白购物车,关键实现代码如下所示:if(MyApplication.ShopCarList.size()>0){ getActivity().findViewById(R.id.layout_shooping).setVisibility( View.GONE); getActivity().findViewById(R.id.lv_buy).setVisibility(View.VISIBLE); }图5-7空白购物车当有商品添加进购物车时,在购物车页面中将排列出来,图4-8展示了商品购物车,关键代码如下所示:else{ getActivity().findViewById(R.id.layout_shooping).setVisibility( View.VISIBLE); getActivity().findViewById(R.id.lv_buy).setVisibility(View.GONE); }adapter=newCommonAdapter<Integer>(getActivity(),MyApplication.ShopCarList,R.layout.item_shopcar_listview)switch(item){case0:holder.getView(R.id.rl_0).setVisibility(View.VISIBLE);break;图5-8有商品购物车当有商品在购物车中的点击购买按钮时,就会跳转至支付界面,并弹出“订单已生成,请付款”提示框,图5-9显示了支付界面,关键代码如下所示:publicvoidconvert(CommonViewHolderholder,intposition, Integeritem){holder.getView(R.id.samsungpaybtn).setOnClickListener( newOnClickListener(){ @Override publicvoidonClick(Viewarg0){ Intentintent=newIntent(); intent.setClass(getActivity(),PaySamsung1Activity.class); startActivity(intent); Toast.makeText(getActivity(),"订单已生成,请付款!", Toast.LENGTH_SHORT).show();图5-9支付界面5.5网购商城个人中心的实现个人中心页面中,UI布局也和上述首页、购物车的一样,也是多重嵌套和具有一样的导航栏。如图5-10所示:图5-10个人中心UI布局其中放置了一个RelativeLayout用作用户登录布局和一个LinearLayout用作收藏和分享功能的布局。其中的view是用来当作分割线,美化布局。下面是表5-3个人中心UI布局中控件的属性详情表:表5-3个人中心UI布局中控件的属性详情表控件标签属性loginandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentToptrueandroid:layout_centerHorizontaltrueandroid:paddingBottom15dpandroid:src@drawable/mycentercollectandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:paddingBottom10spandroid:paddingLeft20spandroid:paddingTop10spandroid:text我的收藏android:textSize20spshareandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:paddingBottom10spandroid:paddingLeft20spandroid:paddingTop10spandroid:text分享android:textSize20sp点击用户头像将会跳转到ReisterActivity登录界面,当输入的用户密码不为空时,保存用户名和密码并跳转至LoginActivity登录成功的界面中,然后返回个人中心,图5-11是用户登录成功界面,关键代码如下所示:if(!"".equals(user)&&!"".equals(pwd)){ Intentintent=newIntent(RegisterActivity.this,LoginActivity.class); Bundlebundle=newBundle();/ bundle.putCharSequence("user",user); bundle.putCharSequence("pwd",pwd); intent.putExtras(bundle); startActivity(intent); finish();图5-11用户登录成功界面反之则会弹出提示输入信息有误,图5-12用户登录失败界面,关键代码如下所示:Toast.makeText(RegisterActivity.this,"用户名或密码输入信息有误!", Toast.LENGTH_SHORT).show();图5-12用户登录失败界面点击分享功能后,则会弹出选择框,供用户选择分享至手机常用的一些软件上。分享功能的实现也比较简单,只需设置好intent过滤器,然后选择分享至的应用,就可以把已经保存好了的信息分享出去了,图5-13展示了分享应用,关键代码如下所示:Intentintent=newIntent(Intent.ACTION_SEND);intent.setType("text/*");intent.putExtra(Intent.EXTRA_TEXT,info);if(intent.resolveActivity(getActivity().getPackageManager())!=null){startActivity(intent);图5-13分享应用结论毕业设计是对我在大学期间所学知识的一次应用,是一次系统的考察我对所学知识的掌握程度。在毕业设计的途中遇到了不少困难,困扰了我很久。从理论到实践的路上,可以说是一条已经砌好阶梯但却十分陡峭难行的登山道路。基于Android(安卓)系统的网购商城APP的设计使用用了数据逻辑层加应用层架构,在强大的Java编程语言和XML标签语言的帮与下,又结合ADT-Bundle开发平台的高速便捷开发,实现了购物商城APP的基本购物体验。尽管当下已拥有很多强大的网购商城APP,但更重要的是,我在这次的课题研究中掌握了更多的知识。论文的创新点在于通过Fragment+FragmentTabHost的结合,开发出了具有底部菜单栏的应用框架,使得购物商城能够在一个Activity下快速的访问首页、购物车或个人中心。在有限的手机屏幕空间里实现了利用最大化。而移动购物充分展示出的便捷性,是传统购物和电脑网购所不能比拟的。经过重重的困难,最终还是基本完成了能进行简单购物体验的网购商城APP,也能满足用户简单购物需求。其中肯定还有不足之处,我会在以后慢慢完善,毕竟冰冻三尺非一日之寒。在毕业设计中,我真正意识到了,开发一个项目所需做的准备是多么重要,在开发前就应该制定好详细的框架结构。因为只有有了详细的框架和结构,再来开发项目就会显得井然有序。但在一开始时我并未意识到这个问题,导致我设计的网购商城APP项目框架比较混乱,最后只能放弃已经做了几天的项目,重新制定详细框架结构,再开发一个新的项目。项目中的模块是互相借用互相嵌套的,并不存在独立的情况,可以说牵一发而动全身,正是因为这样,所以各种各样的困难接踵而至。但在我查阅文档资料和调试后,慢慢的解决一个又一个困难。相信有了这次的经历,会为我在以后的工作中提供重要的经验和教训。致谢在本文完成之际,非常感谢老师,在我撰写论文的过程中,老师给予了极大的帮助,从设计思路、设计方法、设计过程等几个方面都给我很多指导,论文的选题、方案设计,到论文最终定稿,他都以严谨认真的态度对待,他的治学严谨和机敏睿智、高超的实践技能都对我产生很深的影响。值此提交论文之时,在此向导师表达衷心的感谢!参考文献卞秀运.基于Android平台的网上商城系统设计与实现[J].电脑知识与技术,2012,(31)孙更新.Android从入门到精通[M].电子工业出版社,2012[3]赵国栋.基于Android系统的手机网上商城设计与实现[D].北京交通大学,2014[4]PaulS.Wang.Java面向对象程序设计.清华大学出版社,2013.7[5]软件开发技术联盟.Android开发实战[M].清华大学出版社,2014[6]BudiKurniawan.Java和Android开发学习指南[M].人民邮电出版社,2017[7]吴亚峰,杜化美,苏亚光.Android编程典型实例与项目开发[M].电子工业出版社,2012[8]王珊/萨师煊.数据库系统概论.高等教育出版社,2016[9]李宁.Android应用开发实战[M].机械工业出版社,2012[10]李刚.疯狂Android讲义第4版[M].电子工业出版社,2016[11]韩超.Android经典应用程序开发[M].电子工业出版社,2014[12]郭霖.第一行代码[M].人民邮电出版社,2017附录说明购物商城结构购物商城应用总结构购物商城Java包存放各种功能页面的activity购物商城的图片资源文件夹存放购物商城应用的各种图片资源文件购物商城layout布局文件夹组成购物商城每个页面布局购物商城AndroidMainfest主设置文件<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.chason.shop"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="13"android:targetSdkVersion="21"/><applicationandroid:name="com.chason.shop.MyApplication"android:allowBackup="true"android:icon="@drawable/icon"android:label="@string/app_name"android:theme="@android:style/Theme.Holo.Light.NoActionBar"><activityandroid:name=".SplashActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".MainActivity"></activity><activityandroid:name=".AppleShopActivity"></activity><activityandroid:name=".SamsungShopActivity"></activity><activityandroid:name=".XiaoMiShopActivity"></activity><activityandroid:name=".MeiZuShopActivity"></activity><activityandroid:name="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心血管疾病患者用药依从性行为干预策略
- 心脑血管病社区筛查与随访规范
- 心脏微血管病变的微循环功能干预策略-1
- 心理社会因素整合的社区抑郁管理
- 心力衰竭患者再住院的IV策略研究
- 微生物组学与精准医学:肠道健康的调控机制
- 微量元素缺乏与职业性肝损伤关系
- 微循环障碍在DPN发病中的作用与改善策略
- 微创神经外科手术与基因编辑多学科协作模式
- 微创手术在脑转移瘤急症治疗中的应用
- 大学计算机教程-计算与人工智能导论(第4版)课件 第4章 互联网与物联网
- 2025 版普通高中化学课程标准对比
- 肝硬化病人的护理查房
- 2025年中华人民共和国食品安全法培训考试试题及答案
- 潜孔锤钻进技术施工方案
- (12)普通高中技术与工程课程标准日常修订版(2017年版2025年修订)
- 【正版授权】 ISO 11154:2023/Amd 1:2025 EN Road vehicles - Roof load carriers - Amendment 1
- 铁路保密知识培训讲义课件
- 海南国际商业航天发射有限公司笔试题
- 2025上海市自强社会服务总社招聘禁毒社会工作者7人考试参考题库及答案解析
- GB/T 46161.1-2025道路车辆气压制动系第1部分:管、端面密封外螺纹接头和螺纹孔
评论
0/150
提交评论