《android开发——简易计算器的设计报告》由会员分享,可在线阅读,更多相关《android开发——简易计算器的设计报告(17页珍藏版)》请在金锄头文库上搜索。
1、 简易计算机的设计简易计算机的设计摘要:摘要:Android 是当今最重要的手机开发平台之一,它是建立在 Java基础之上的,能够迅速建立手机软件的解决方案。Android 的功能十分强大,成为当今软件行业的一股新兴力量。Android 基于 Linux 平台,由操作系统、中间件、用户界面和应用软件组成,具有以下 5 个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。一、实训目的一、实训目的1、了解 Android 系统,学会 Android 开发环境的搭建。2、了解Eclipse,学会用Eclipse和Java 开发一个Andro
2、id程序。3、进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。二、实训任务二、实训任务1、Activity 的相关知识简单理解 Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity 是最基本的 Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为
3、一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。(1)Activity 的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息) ;void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时调用。如动画播放和音乐播放;void onPause()
4、活动将要进入后台运行时调用。(此时前台启动了另一个活动) ;void onStop()不需要某个活动了,就调用;void onDestroy()销毁活动。(2)多个 Activity 之间的跳转:通过 Intent 类实现屏幕之间的跳转(包括没有参数关系和需要传递参数两种情况) 。(3)两个 Activity 之间进行数据交换:startActivity() 只有 Intent 一个参数;public void startSubActivity(Intent intent, int requestCode) (requestCode:用来标识某一个调用,一般定义一个常量) 。传过去:函数原型为
5、: public Intent setData(ContentURI data) 然后,参数带到新的Activity 后,同样用 Activity.getIntent()函数可得到当前过来的 Intent 对象,然后用 getData()就取到参数了。 传回来:函数原型为: public final void setResult(int resultCode, String data)。2、Intent 的相关知识Intent 是描述应用想要做什么。Android 使用了 Intent 这个特殊类,实现在屏幕与屏幕之间移动。Intent 数据结构两个最重要的部分是动作和动作对应的数据。Inte
6、nt 类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。3、Layout用于用户界面设计。包含 AbsoluteLayout, FrameLayout,GridView, LinearLayout, ListLayout, RadioGroup, TableLayout 等等。(1)线性布局 LinearLayout:垂直:android:orientation=“vertical“;水平:android:orientation=“horizontal“(2)相对布局 RelativeLayout:让子元素指定它们相对于其他元素的位置(通过 ID 来指定)或相对于父布局对象。在
7、RelativeLayout 布局里的控件包含丰富的排列属性:Layout above:控件在指定控件的上方;Layout below:控件在指定控件的下方;Layout to left of根据要求,系统实现以下功能:计算器界面友好,具有基本的加、减、乘、除功能,支持触屏手机,整个程序基于 android 技术开发。三、设计流程三、设计流程1、系统的软件结构图2、功能的操作流程得出程序结果后,输入数据,选择运算符号,再输入数据,选择等号,即可得到结果。3、计算器模块整个项目工程的目录文件Src 文件存放的是文本中开发的所有 java 文件,java 文件时整个项目的计算器基本加减乘 除运算加
8、法减法除法乘法其他 运算开方*2 运算正负运算清除运算代码,gen 下面的 R.java 为 Eclipse 自动生成的系统文件。Res 是存放整个系统所有到的所有资源。Layout 文件下 main.xml 文件的配置生成内容。4、程序源代码程序源代码1、主文件 JisuanqiActivity.javaSrc/jisuqi.a/JisuanqiActivity.java 文件时此项目的主要文件,它调用各个公用文件来实现具体的功能。文件 JisuanqiActivity.java 的具体代码如下:package jisuanqi.a;import android.app.Activity;
9、import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;public class JisuanqiActivity extends Activity /* Called when the activity is first created. */ private EditText output=null; private EditText in
10、put=null; private Button btn0=null; private Button btn1=null; private Button btn2=null; private Button btn3=null; private Button btn4=null; private Button btn5=null; private Button btn6=null; private Button btn7=null; private Button btn8=null; private Button btn9=null; private Button btnadd=null; pr
11、ivate Button btnsubtract=null; private Button btnmultiply=null; private Button btndivide=null; private Button btnclear=null; private Button btnresult=null; private Button btndot=null; private Button btnzhengshu=null; private Button btnkaifang=null; private Button btnpingfang=null;private String str=
12、“;/保存数字 private String strold=“;/原数字 private char act= ;/记录“加减乘除等于”符号 private int count=0;/判断要计算的次数,如果超过一个符号,先算出来一部分 private Double result=0.0;/计算的输出结果 private Boolean errBoolean=false;/有错误的时候为true,无错为false private Boolean flagBoolean=false;/一个标志,如果为true,可以响应运算 消息,如果为false,不响应运算消息,只有前面是数字才可以响应运算消息 p
13、rivate Boolean flagDot=false; /小数点标志位Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);output=(EditText)findViewById(R.id.output);input=(EditText)findViewById(R.id.input);btn0=(Button)findViewById(R.id.zero);btn1=(Button)findView
14、ById(R.id.one);btn2=(Button)findViewById(R.id.two);btn3=(Button)findViewById(R.id.three);btn4=(Button)findViewById(R.id.four);btn5=(Button)findViewById(R.id.five);btn6=(Button)findViewById(R.id.six);btn7=(Button)findViewById(R.id.seven);btn8=(Button)findViewById(R.id.eight);btn9=(Button)findViewById
15、(R.id.nine);btnadd=(Button)findViewById(R.id.add);btnsubtract=(Button)findViewById(R.id.subtract);btnmultiply=(Button)findViewById(R.id.multiply);btndivide=(Button)findViewById(R.id.divide);btnclear=(Button)findViewById(R.id.clear);btnresult=(Button)findViewById(R.id.result); btndot=(Button)findView
16、ById(R.id.dot);btnzhengshu=(Button)findViewById(R.id.zhengfu);btnkaifang=(Button)findViewById(R.id.kaifang);btnpingfang=(Button)findViewById(R.id.pingfang);/设置按钮侦听事件btn0.setOnClickListener(listener);btn1.setOnClickListener(listener);btn2.setOnClickListener(listener);btn3.setOnClickListener(listener);btn4.setOnClickListener(listener);btn5.setOnClickListener(listener);btn6.setOnClickListener(listener);btn7.setOnClickListener(listener);btn8.setOnClickListener(listene