1.项目概述
随着科学技术和社会经济的不断提高,人们对服务的快捷、便利性要求也越来越高,从而对智能手机上的应用软件提出了更高的要求。一个基于安卓技术的水果系统能够为用户提供一个方便日常操作的便捷点餐功能,它能够满足广大手机用户的对日常水果的需要,为需求双方提供了一一个共赢的平台。
2.项目需求分析
本系统正是为了实现手机网上选水果而设计,所包含到的有关技术有:Android平台、MySQL技术、Java语言等技术。能够实现水果查看、我的订单、添加订单、菜单管理、用户管理等作用。用户注册后,登陆客户端即可完成订餐、浏览新鲜瓜果等功能。运行测试表明:该系统功能完善、运行顺畅稳定,具有一定的商业实用价值。
3.开发环境
Android Studio变量名:Path,变量值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;JDK安装目录C:\Java\jdk1.8.0_202
Java是现如今使用人数最多的编程语言之一,它具有简单性、安全性、轻量级、可移植等特性[9]。此外,Java还具有可以跨平台运行的关键技术,比如,Java程序可以同时进入一个无编码的程序平台,虚拟机不会在意Class文件的来源是什么编译器翻译过来的语言[10]。Java多线程的特点也使系统运行更加流畅、响应速度更快。Java的兼容性可使系统能够在多平台运行,使得后续在更新系统方面更加灵活[11]。Java还产出了Spring等框架可以更加快速和便捷的书写接口,只需要按照特定的XML文件进行配置便可生出基础接口和目录。Java的另一个大核心优点就是易集成。Java简单集成各类常用的其他技术,比如JSP、MySQL、Oracle、Maven等。Java集成便可使用且不存在跨域问题。
4.界面设计
4.1Fragment结构分析
在普通手机开发的过程中,使用Fragment能实现一个界面的多次使用,能加快效率。Fragment可以被认为是Activity界面的一个布局,其依赖于Activity,但是拥有自己的活动事件与生命周期。可以通过替换Activity中的Fragment实现界面的优化处理。
在<fragment>元素中的android:name属性指定了在布局中要实例化的Fragment。当系统创建这个Activity布局时,它实例化在布局中指定的每一个Fragment,并且分别调用onCreateView(),来获取每个Fragment的布局。然后系统会在Activity布局中插入通过<fragment>元素中声明直接返回的视图。
4.2登陆注册界面的实现
Button,TextView,TextEdit,ImageView,RatioButton,scrollview等基本控件的使用;多个Activities之间的切换;使用Android本地数据库来管理用户信息。
设置整个RelativeLayout的内边距为20dp,给界面留白。让编辑框的左边对齐到父控件的左边,右边对齐到父控件的右边,将passwordView放到usernameView的下面,以保证二者的相对位置不变。
主布局为垂直布局,第一个TextView控件布置,显示“用户注册”字样,第一个LinearLayout控件,包含一个TextView控件和EditView控件,用于提醒用户输入和获取账号信息
//注册
//实例化DBHelper,创建数据库
helper=new DBHelper(RegisterActivity.this,"db_project",null,1);
//找控件
4.3fragment首页界面
Fragment_home.xml布局文件添加控件ImageView,EditText,match parent, 父布局来决定当前控件的大小 wrap parent控件内容决定当前控件的大小android:background修改背景图片,界面美观整洁
4.4fragment水果界面
Fragment_snack.xml中LinearLayout线性布局,添加控件ImageView,TextView,Button,插入图片,添加文字,按钮的组件互通
4.5 fragment购物车下单界面
public void onClick(View v) {
Orders order = new Orders(account,fruit.getTitle(),"S"+ System.currentTimeMillis(),account,sf.format(new Date()));
order.save();
Toast.makeText(mActivity,"订单成功", Toast.LENGTH_SHORT).show();
btnCollect.setVisibility(View.GONE);
btnCancel.setVisibility(View.VISIBLE);
}
});
//取消收藏
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Orders order = DataSupport.where("account = ? and title = ?",account,fruit.getTitle()).findFirst(Orders.class);
order.delete();
Toast.makeText(mActivity,"取消成功", Toast.LENGTH_SHORT).show();
btnCollect.setVisibility(View.VISIBLE);
btnCancel.setVisibility(View.GONE);
完整文章请联系作者