1、 课程设计报告 学生姓名: 学 号: 专业班级: 计算机 班 课程名称: Android 智能手机软件开发 学年学期: 2011 学年 第一学期 指导教师: 2 0 11 年 12 月 一、一、概述概述 设计编写一个能在 Android 系统下运行的计算器,除了能实现四则运算外,还带有菜单的功能。菜单中 拥有的 Item 有:1 退出键按下时弹出一个对话框提示是否确认退出;2 帮助键按下后显示帮助信息, 并能从帮助界面返回到主界面; 3About 键按下后弹出就算器的版本信息; 4 换肤键按下后更换皮肤。 二、二、项目设计与实现项目设计与实现 先写好布局文件,代码如下: 说明:此 Activi
2、ty 采用嵌套式 LinearLayout 布局,最外层的 LinearLayout 嵌入六个 LinearLayout,此时 LinearLayout 的 android:orientation=“vertical“即采用垂直布局。嵌入的六个 LinearLayout 除第一个采用垂直布 局外其他的均采用水平布局。第一个 LinearLayout 控制两个 EditText 的位置,剩下的五个 LinearLayout 控制 20 个按钮的布局。为使软件能适应不同分辨率的手机,所有控件的 layout_width 和 layout_height 属性都设为 fill_parent, 而控制按
3、钮大小通过设置 layout_weight 的大小来控制。 这样控件的大小就只和屏幕大小和控件占 屏幕的比例有关。 显示效果如下: Activity 的界面的界面 计算器的基本功能实现计算器的基本功能实现 接下来就是对各个按钮绑定监听器,实现算术式的输入功能和计算输入的算术式值的功能。根据各个按 钮的功能可将将它们分为四类:Clean 按钮为一类,Delete 为一类,等号按钮为一类,其他的作为基本算式输 入按钮可看做一类。由此写四个监听器类,分别实现按钮的各个功能。 Clean 功能是清空两个 Edittext 中的内容,实现原理也就是 Clean 按钮绑定的监听器,代码如下: /清除功能
4、class clearListener implements OnClickListener public void onClick(View v) / TODO Auto-generated method stub edittext1.setText(null); edittext2.setText(null); tem=“; tem1=“; Delete 功能相关代码是为: /删除功能,删除之后光标不移动 class deleteListener implements OnClickListener public void onClick(View v) / TODO Auto-gener
5、ated method stub int index=edittext1.getSelectionStart();/获得光标位置 int l=tem.length(); if(l=0|index=0) edittext1.setText(tem); edittext1.setSelection(0); else if(l=1) tem=“; edittext1.setText(tem); else String tem2=“; tem2=tem.substring(index, l); tem=tem.substring(0,index-1); edittext1.setText(tem+te
6、m2); edittext1.setSelection(tem.length(); tem=tem+tem2; /edittext1.setSelection(index-1); 点击等号按钮后,能计算输入算式的值并将结果显示在第二个文本框中,实现代码如下: /等号功能 class dengListener implements OnClickListener public void onClick(View arg0) / TODO Auto-generated method stub String str=edittext1.getText().toString(); ExpressionParser ep=new ExpressionParser(str); try double result=ep.parse(); String result_str=String.valueOf