云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于Android计算器功能的实现

基于Android计算器功能的实现

  • 62 次阅读
  • 3 次下载
  • 2025/6/28 0:12:48

图4-7 界面设计结果

从上图中,我们可以很直观的看到,从上到下分别是:显示模块、输入模块、计算模块。 (1)输入模块,主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,具体的处理办法会在相关的地方进行说明。在本项目中,在触屏上提供了各种功能的按键,分别是C,0,1,2,3,4,5,6,7,8,9,+,-,×,÷,=,Delete, CE。

在整体界面的设置中,我还为各个按键的设置中我还设置了字体的大小,字体的颜色,分别用下列语句实现:

字体大小:android:textSize=\字体颜色:android:textColor = \界面背景:android:background=\

(2)显示模块,主要描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果和一些其他信息。显示模块还设置了显示的字体,大小,颜色,同时还设置了显示字体的颜色。具体设置如下代码:

android:layout_width=\ android:layout_height=\ android:gravity=\

android:text=\

android:textSize=\

android:layout_marginBottom=\ android:layout_marginLeft=\ android:layout_marginRight=\

26

android:editable=\ android:cursorVisible=\ android:layout_weight=\ />

显示区中使用的是基于增强型的图形用户界面EditText,利用此类的功能,在显示模块中完成了以上设置。显示模块声明了这些设置,在用户使用系统的时候,会在协同布局设置一同完成以上设置,使用户在使用的时候可以直观的看到显示区的样子。

一般情况下都会选择差不多的字体,所以此处选择的字体和键盘上显示的字体其实是一样的,但是事实上系统中进行了两次声明,即逻辑上这是两种不同的字体,以及设置字符串text为空。显示区和输入模块中的表格一样,同样分别设置了最小显示以及完美显示这两种状态。然后声明了显示区的画法,画法中包括了显示区的两个矩形组成的显示框,显示框的颜色和大小以及显示框中显示的文字所使用的字体,还有文字在显示框中的位置。最后设置了计算模块中的变量得到以及改变显示中所显示的内容的方法,当显示中的内容发生变化时,系统会运行repaint命令来重画显示区,由于使用的是比较低级的方法,所以只能通过整个显示区来实现显示更新这个命令。这样虽然和使用高级的方法相比速度上可能有点慢,但是由于时间相差的不是很多,在用户的正常使用中是不会有所感觉的。以上就是显示模块的具体实现流程,具体的实现方法请参照附件1中的代码。

在我的设计中,将综合使用LinearLayout、TableLayout、EditText和TextView等UI布局和控件来实现计算器的界面。其中,整个界面的布局为LinearLayout,按钮的布局需要对EditText和Button的一些属性进行相关设置,以使得它们满足我们的需要。

具体设计如图4-8所示:

图4-8 界面具体设计

27

4.4 计算模块的实现

计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理办法,通过定义的处理办法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除等各种计算功能的完成,运算符的替换,初始化系统等等。

计算器的特殊功能键列表:

按键名称 C CE Delete 按键功能 计算清零键,重新开始计算 本次输入清零键,按下后可以重输入本次数据 回退建,删除最后输入的一个字符 按键监听同时监听了触屏上的按键和键盘上的按键,其中按键的监听使用了的松开为判断的标准,即用户松开按键的时候程序才会读取数据。计算模块是整个系统的主体部分,整个计算器功能是通过Jisuanq2Activity.java来实现的。

首先,我使用一个数组btn来分别监控十个数字键,用et_led来监控输入内容,用btn_div、btn_mul、btn_sub、btn_plus、btn_equal、btn_dot,分别来表示除法、乘法、减法、加法、等号、点号,具体实现如下代码:

private Button[] btn = new Button[10]; private EditText et_led;

private Button btn_div, btn_mul, btn_sub, btn_plus, btn_equal,

btn_dot;

其次,对内容的操作。当有内容输入时,首先接收内容,接受的内容分为两部分:当输入为数据时,则是通过传递给数组str,根据数据的传递判断数据内容的长度,如果没有内容输入则,则通过et_led.setText()为0,如果有数据输入的时候,则通过et_led.setText()显示数据,并且将第一次输入的数据保存predata;当输入为符号时,像“+、-、*、/、CE、C、Delete”时,然后对符号进行判断,具体实现代码如下:

private OnClickListener actionPerformed = new OnClickListener() {

public void onClick(View v) {

String

command = ((Button)v).getText().toString(),

28

};

}

str = et_led.getText().toString(); if(str.length() > 1) }

if(et_led.getText().toString().compareTo(\) == 0) { }

et_led.setText(\); vbegin = true;

et_led.setText(str.substring(0, str.length() - 1)); et_led.setText(\); vbegin = true;

else if(str.length() == 1) {

if(command.compareTo(\) == 0) {

} else if

…………………………………

最后,当第二次输入数据的时候,将会数据存到temp,再根据上次输入的符号进行运算,然后将结果保存在temp,如果按键“=”,则会将将结果输出,如果是其他的符号,则会进行相应的运算,代码中的实现如下:

private void wtNumber(String str) {

}

private void wtOperater(String opt) {

try {

if(vbegin)

preopt = opt;

if(preopt.equals(\)) {

predata = temp;

} else if(preopt.equals(\)) { else { if(vbegin)

et_led.setText(str); et_led.append(str); else

vbegin = false;

double temp = Double.parseDouble(et_led.getText().toString());

}

}

…………………………………

} else { }

throw new ArithmeticException();

et_led.setText(String.valueOf(predata)); preopt = opt;

29

搜索更多关于: 基于Android计算器功能的实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

图4-7 界面设计结果 从上图中,我们可以很直观的看到,从上到下分别是:显示模块、输入模块、计算模块。 (1)输入模块,主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,具体的处理办法会在相关的地方进行说明。在本项目中,在触屏上提供了各种功能的按键,分别是C,0,1,2,3,4,5,6,7,8,9,+,-,×,÷,=,Delete, CE。 在整体界面的设置中,我还为各个按键的设置中我还设置了字体的大小,字体的颜色,分别用下列语句实现: 字体大小:android:textSize=\字体颜色:android:textColor = \界面背景:android:background=\(2)显示模块,主要描述了

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com