在这里需要注意的是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又 bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,只能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。
Layout布局:布局方式有很多种,比如线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)和绝对布局(Absolute Layout)。本文设计主要采用线性布局(Linear Layout),所以就线性布局我们来做简单地介绍。
线性布局 LinearLayout:线性布局是所用布局中最常用的方式之一,RadioGroup, TabWidget,TableLayout,TableRow,ZoomControls类的父类。LinearLayout可以让它的子元素垂直或水平的方式排成一行(不设置方向的时候默认按照垂直方向排列)。LinearLayout以你为它设置的垂直或水平的属性值,来排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子元素的高度加上边框高度)。LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素的右对齐、中间对齐或者左对齐)。
LinearLayout还支持为单独的子元素指定weight 。好处就是允许子元素可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串小对象挤成一堆的情况,而是允许他们放大填充空白。子元素指定一个weight 值,剩余的空间就会按这些子元素指定的weight比例分配给这些子元素。默认的weight值为0。例如,如果有三个文本框,其中两个指定了weight值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大。
控件介绍:TextView —— 文本控件,可以用它来显示文字,就像一个标签一样,或者你可以认为是html中的span。对于TextView是怎么设置显示的文本,怎样设置字体的大小,字体的颜色,字体的样式。TextView包含以下子类:Button, CheckedTextView,Chronometer,DigitalClock,EditText。以下简单介绍TextView的属性: ?
android:id —— 控件的标识符
第 16 页 共 27 页
? ? ? ? ?
android:layout_width —— 设置控件的宽度 android:layout_height —— 设置控件的高度 android:layout_marginTop —— 设置文本的上外边距 android:textSize —— 设置文本文字的的大小 android:paddingLeft —— 设置元素左内边距
1. Button —— 按钮控件,在button内部可以放置内容,比如文本或图像。
与标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或或多媒体。比如,我们可以在按钮中包括了一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。不过button禁止使用的元素是图像映射,因为它对鼠标和键盘敏感的动作会干扰表单按钮的行为。以下简单介绍Button的属性: ? ? ? ? ? ? ?
android:id —— 控件的标识符
android:layout_width —— 设置按钮的宽度 android:layout_height —— 设置按钮的高度 android:textSize —— 设置按钮里文字的大小 android:layout_marginTop —— 设置按钮的上外边距 android:text —— 设置按钮中的文字
android:visibility —— 设置按钮里的元素是否可见
2. EditText —— 文本编辑框,TextView的直接子类,所以EditText会继成父类
TextView的一些方法。在布局中配置EditText也需同时配置一个Button,这样可以在代码中监听Button的事件,以便获取当前在EditView中输入的内容并且显示出来。在EditView可以限制输入的字符串类型。以下简单介绍EditText的属性: ? ? ? ? ? ?
android:id —— 控件的标识符
android:layout_width —— 设置输入框的宽度 android:layout_height —— 设置输入框的高度 android:layout_weight —— 设置输入框占父控件的比例 android:inputType —— 设置输入框内的字符串类型 android:hint —— 设置在输入框输入内容前默认的文字
3. ImageView —— 标签可以显示任意图像,例如图标。ImageView类可以加载各种来
第 17 页 共 27 页
源的图片(如资源或图片库),需要计算图像的尺寸,以便它可以在其他布局中使用,并提供例如缩放和着色等各种显示选项,在本文用来显示预定图片。以下简为ImageView的属性: ? ? ? ?
android:id —— 设置图片的标识符
android:layout_width —— 设置图片的宽度 android:layout_height —— 设置图片的高度 android:visibility —— 设置图片是否可见性
4. ProgressBar —— 进度条控件,通常在应用程序执行诸如复制文件或打印文档等任
务时使用。如果没有视觉提示,应用程序的用户可能会认为应用程序不响应。通过在应用程序中使用 ProgressBar,可以警告用户应用程序正在执行冗长的任务且应用程序仍在响应。以下简单介绍ProgressBar的属性: ? ? ? ? ?
android:max —— 设置进度条的最大进度值 android:progress —— 设置进度条初始化的进度值 android:secondaryProgress—— 设置二级进度条的值 android:layout_gravity —— 设置进度条位置
android:style —— 设置进度条的风格是长方形还是圆形
5. CheckBox —— 复选框,通常用于某选项的打开或关闭,可以选择任意数目的复选
框;
6. RadioButton —— 单选框,为用户提供由两个或多个互斥选项组成的选项集。虽然
单选按钮和复选框看似功能类似,却存在重要差异:当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选定。相反,却可以选择任意数目的复选框。定义单选按钮组将告诉用户,这里有一组选项,您可以从中选择一个且只能选择一个。 2.2.4 开发方案整体选择
根据用户的实际情况和需要,最终决定采用在Windows 下使用Java+Android SDK开发,采用B/S结构。这样的好处是:
1.使用Java+Android SDK+SQL灵活方便,可扩充性、可移植性较好。 2.客户端可以选择安卓平台发布,用户可以在手机端下订单。
第 18 页 共 27 页
3.后台管理采用 B/S结构是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。 2.3 系统可行性分析
为了给软件开发者提供是否进行项目实施的参考依据,现分析项目的风险、项目需要的投资以及效益。 2.3.1 经济可行性
手机点餐系统是一个小型的存储管理系统, 在开发时需要软件开发人员花费一定的时间和精力,因此需要一定的资金。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、 机房、电源等;
但它给企业带来的利润是不可估量的,节省了许多人力,物力上的开支,使资产管理工作变繁为简,使其更加合理化、规范化。工作效率的提高就意为着整体水平的提高,是非常值得投资的。 2.3.2 技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本库存管理系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 2.3.3 操作可行性
系统是在JDK 环境下开发的,易于操作。而且系统还采用了可视化面向对象的工具开发,其窗口、界面简洁易懂,所以系统在操作上是可行的。
2.4 系统需求分析
2.4.1 对系统的要求
本类型的系统的种类很多,而每一个分类下又有很多子类。还应该提供用户管理,并对其设置权限管理。系统还应该做到对数据的快速查询。经实际调查,要求本系统具
第 19 页 共 27 页
有以下功能:
(1)界面设计美观大方,方便、快捷、操作灵活。 (2)如果系统的使用对象较多,则要求有较好的权限管理。 (3)提供对用户的基本信息管理的操作。 (4)方便信息的查询。 2.4.2 基本功能
(1) 顾客的登录注册:为了增强系统的使用安全性,使用系统之前必须登录系统,在后台的数据库通过用户名和密码进行查询。注册用户方可使用该系统。
(2) 菜谱的查询:顾客进入系统后可以对菜谱进行浏览,并且可以查看菜谱的详细信息。顾客可以根据价格分类来进行分类查询。
(3) 点餐:点餐功能模块是本系统中一个重要的功能模块。顾客选择自己满意的菜谱后,点击确认加入菜谱购物车中,然后可以进行修改,增删。
(4) 发送订单:顾客选好菜谱后,点击生成订单。顾客需要输入相关的信息,如订餐时间,配送菜的地址,联系人等等。通过WIFI,将订餐信息发送到后台服务器,进而在厨房中的显示,方便厨师下厨。
(5) 浏览历史记录:顾客可以通过浏览历史记录来查看自己点过的菜单,花过多少钱,点了些什么菜。还可对选过的菜进行评分。
2.4.3 绘制用例图设计系统功能
Android手机终端点菜系统
用户登录管理模块主界面模块查询菜品功能模块点餐功能模块系统用户管理模块菜品管理功能模块 上述的Android手机终端点菜系统的功能结构图可以直观的体现出了系统的功能结构,各
第 20 页 共 27 页