Android 简易计算器
Android开发实战:创建一个简单的计算器应用
Android开发实战:创建一个简单的计算器应用在如今移动互联网的时代,手机已经成为每个人生活中不可或缺的一部分。
而现代手机中最重要的应用之一,莫过于计算器。
在这篇文章中,我将向大家介绍如何使用Android开发来创建一个简单的计算器应用,让我们一起开始这个富有挑战的实战项目吧!1. 搭建开发环境要开始开发一个Android应用,首先需要搭建开发环境。
目前,Android Studio是最常用的开发工具。
你可以去官方网站上下载并安装它。
安装完成后,你可以打开Android Studio,创建一个新的项目来开始你的开发之旅。
2. 设计应用界面在开发Android应用的过程中,视觉化界面设计是非常重要的一步。
你可以使用Android Studio提供的可视化编辑器来设计你的应用界面。
这里,我们将创建一个简单的计算器应用,所以我们的界面将包含一些按钮和文本框。
3. 添加事件处理器一旦界面设计完成,接下来需要为按钮添加事件处理器。
在计算器应用中,按钮被点击后,需要相应地执行一些计算操作。
你可以在Java代码中编写事件处理器,然后将其与按钮关联起来。
在事件处理器中,你可以使用适当的逻辑来执行所需的计算操作,并将结果显示在文本框中。
4. 实现基本的计算功能一个计算器应用的核心是它的计算功能。
在这个实战项目中,我们将实现基本的加减乘除运算。
你可以使用Java语言中的运算符来实现这些功能,并确保逻辑正确,并处理一些异常情况,如除以零等。
5. 优化用户体验在设计应用界面以及实现计算功能之后,你可以考虑进一步优化用户体验。
例如,你可以添加一些动画效果来让用户感觉更加流畅,或者添加一些提示信息来引导用户操作。
你还可以考虑添加更多的功能,如清除按钮或百分比计算等,以提高应用的实用性和用户满意度。
6. 调试和测试在完成应用的开发之后,你需要进行调试和测试来确保应用的正常运行。
你可以使用Android Studio的调试工具来定位和解决代码中的错误。
android实现简易计算器
android实现简易计算器本⽂实例为⼤家分享了android实现简易计算器展⽰的具体代码,供⼤家参考,具体内容如下效果图:⼀、如图,⾸先布局计算器主页显⽰activity_main.xml<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><EditTextandroid:id="@+id/num1"android:layout_width="80dp"android:layout_height="wrap_content"android:inputType="number" /><TextViewandroid:id="@+id/type"android:layout_width="40dp"android:layout_height="50dp"android:layout_toRightOf="@id/num1"android:gravity="center" /><EditTextandroid:id="@+id/num2"android:layout_width="80dp"android:layout_height="wrap_content"android:layout_toRightOf="@id/num1"android:layout_marginLeft="50dp"android:inputType="number" /><TextViewandroid:id="@+id/equal"android:layout_width="80dp"android:layout_height="50dp"android:layout_toRightOf="@id/num2"android:gravity="center" /><Buttonandroid:id="@+id/add"android:layout_width="70dp"android:layout_height="wrap_content"android:layout_below="@id/num1"android:text="@string/add" /><Buttonandroid:id="@+id/sub"android:layout_width="70dp"android:layout_height="wrap_content"android:layout_toRightOf="@id/add"android:layout_alignTop="@id/add"android:text="@string/sub" /><Buttonandroid:id="@+id/mul"android:layout_width="70dp"android:layout_height="wrap_content"android:layout_toRightOf="@id/sub"android:layout_alignTop="@id/sub"android:text="@string/mul" /><Buttonandroid:id="@+id/div"android:layout_width="70dp"android:layout_height="wrap_content"android:layout_toRightOf="@id/mul"android:layout_alignTop="@id/mul"android:text="@string/div" /></RelativeLayout>⼆、计算器实现的⽅法public class CalculatorBiz {public float add(float num1,float num2){return num1+num2;}public float sub(float num1,float num2){return num1-num2;}public float mul(float num1,float num2){return num1*num2;}public float div(float num1,float num2){return num1/num2;}}三、MainActivity主要⽅法public class MainActivity extends Activity {//定义组件private EditText inputnum1;private EditText inputnum2;private TextView type;private TextView equal;private Button add;private Button sub;private Button mul;private Button div;CalculatorBiz calculator=new CalculatorBiz();@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_main);//查找组件inputnum1=(EditText) findViewById(R.id.num1); inputnum2=(EditText) findViewById(R.id.num2); type=(TextView) findViewById(R.id.type);equal=(TextView) findViewById(R.id.equal);add=(Button) findViewById(R.id.add);sub=(Button) findViewById(R.id.sub);mul=(Button) findViewById(R.id.mul);div=(Button) findViewById(R.id.div);type.setTextColor(Color.WHITE);equal.setTextColor(Color.WHITE);add.setOnClickListener(new OnClickListener() { @Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("+");equal.setText("="+calculator.add(a, b));}});sub.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("-");equal.setText("="+calculator.sub(a, b));}});mul.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("*");equal.setText("="+calculator.mul(a, b));}});div.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("/");equal.setText("="+calculator.div(a, b));}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, 1, 0, "关于");menu.add(0, 2, 1, "退出");menu.findItem(2);return true;}public boolean onOptionsItemSelected(MenuItem item){if(item.getItemId() == 1){Toast.makeText(this, "详细内容\n"+"作者:dyp\n"+"版本:version1", Toast.LENGTH_LONG).show(); }else if(item.getItemId() == 2){Toast.makeText(this, "退出\n"+"你确定退出程序?", Toast.LENGTH_LONG).show();}return super.onOptionsItemSelected(item);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Android开发实现的简单计算器功能【附完整demo源码下载】
Android开发实现的简单计算器功能【附完整demo源码下载】本⽂实例讲述了Android开发实现的简单计算器功能。
分享给⼤家供⼤家参考,具体如下:这个Android计算器虽然还有点⼩bug,不过简单的计算功能还是没问题的哦;先上图看效果⽐较简单,所以我就没怎么写注释,应该⼀看就能明⽩的有不明⽩的可以发信问我先贴MainActivity.java代码package com.example.calculator;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bp, bs, bm, bd, bc, be;ImageView delete;TextView tv;EditText show;String showString = "", option = "";int showfirst = 0;String exception = "";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);b0 = (Button) findViewById(R.id.bt_0);b1 = (Button) findViewById(R.id.bt_1);b2 = (Button) findViewById(R.id.bt_2);b3 = (Button) findViewById(R.id.bt_3);b4 = (Button) findViewById(R.id.bt_4);b5 = (Button) findViewById(R.id.bt_5);b6 = (Button) findViewById(R.id.bt_6);b7 = (Button) findViewById(R.id.bt_7);b8 = (Button) findViewById(R.id.bt_8);b9 = (Button) findViewById(R.id.bt_9);bp = (Button) findViewById(R.id.bt_plus);bs = (Button) findViewById(R.id.bt_sub);bm = (Button) findViewById(R.id.bt_mutilate);bd = (Button) findViewById(R.id.bt_div);bc = (Button) findViewById(R.id.bt_c);be = (Button) findViewById(R.id.bt_equ);b1.setOnClickListener(this);b2.setOnClickListener(this);b3.setOnClickListener(this);b4.setOnClickListener(this);b5.setOnClickListener(this);b6.setOnClickListener(this);b7.setOnClickListener(this);b8.setOnClickListener(this);b9.setOnClickListener(this);b0.setOnClickListener(this);bp.setOnClickListener(this);bs.setOnClickListener(this);bm.setOnClickListener(this);bd.setOnClickListener(this);bc.setOnClickListener(this);be.setOnClickListener(this);show = (EditText) findViewById(R.id.et_show);delete = (ImageView) findViewById(R.id.iv_delete);delete.setOnClickListener(this);tv=(TextView) findViewById(R.id.author);tv.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.bt_0:showString += "0";break;case R.id.bt_1:showString += "1";break;case R.id.bt_2:showString += "2";break;case R.id.bt_3:showString += "3";break;case R.id.bt_4:showString += "4";break;case R.id.bt_5:showString += "5";break;case R.id.bt_6:showString += "6";break;case R.id.bt_7:showString += "7";break;case R.id.bt_8:showString += "8";break;case R.id.bt_9:showString += "9";break;case R.id.bt_plus:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "+";}break;case R.id.bt_sub:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "-";}break;case R.id.bt_mutilate:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "*";}break;case R.id.bt_div:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "/";}break;case R.id.bt_equ:if (option.equals("+"))showString = showfirst + Integer.parseInt(showString) + "";else if (option.equals("-")) {showString = showfirst - Integer.parseInt(showString) + "";} else if (option.equals("*")) {showString = showfirst * Integer.parseInt(showString) + "";} else if (option.equals("/")) {if (showString.equals("0")) {exception = "除数不能为0!";} elseshowString = showfirst / Integer.parseInt(showString) + "";}break;case R.id.bt_c:showString = "";break;case R.id.iv_delete:Toast.makeText(MainActivity.this, showString + "已被清空",Toast.LENGTH_SHORT).show();showString = "";break;case R.id.author:Toast.makeText(MainActivity.this, "郑明亮\n软件⼯程\nQQ:1072307340", Toast.LENGTH_SHORT).show();break;default:break;}if (exception.equals(""))show.setText(showString);else {show.setText(exception);exception = "";}// 设置⽂本框颜⾊;if (!show.getText().toString().equals("")) {delete.setBackgroundColor(R.drawable.delete_gray);}else {delete.setBackgroundResource(R.drawable.delete);}}}再贴布局activity_main.xml:<LinearLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.calculator.MainActivity" ><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><EditTextandroid:id="@+id/et_show"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输⼊数字" /><ImageViewandroid:id="@+id/iv_delete"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignRight="@id/et_show"android:src="@drawable/delete_and_deletegray" > </ImageView></RelativeLayout><GridLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@+id/et_show"android:focusable="false"android:gravity="center"android:layout_marginTop="25dp"android:columnCount="4"android:horizontalSpacing="0dp"android:orientation="horizontal"android:stretchMode="none" ><Buttonandroid:id="@+id/bt_1"android:layout_height="wrap_content"android:text="1" /><Buttonandroid:id="@+id/bt_2"android:text="2" /><Buttonandroid:id="@+id/bt_3"android:text="3" /><Buttonandroid:id="@+id/bt_div"android:text="/" /><Buttonandroid:id="@+id/bt_4"android:text="4" /><Buttonandroid:id="@+id/bt_5"android:text="5" /><Buttonandroid:id="@+id/bt_6"android:text="6" /><Buttonandroid:id="@+id/bt_mutilate"android:text="X" /><Buttonandroid:id="@+id/bt_7"android:text="7" /><Buttonandroid:id="@+id/bt_8"android:text="8" /><Buttonandroid:id="@+id/bt_9"android:text="9" /><Buttonandroid:id="@+id/bt_sub"android:text="-" /><Buttonandroid:id="@+id/bt_0"android:layout_columnSpan="2"android:layout_gravity="fill_horizontal"android:text="0"android:width="2dp" /><Buttonandroid:id="@+id/bt_c"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="C" /><Buttonandroid:id="@+id/bt_plus"android:layout_gravity="fill_vertical"android:layout_rowSpan="2"android:text="+" /><Buttonandroid:id="@+id/bt_equ"android:layout_columnSpan="3"android:layout_gravity="fill_horizontal"android:text="=" /></GridLayout><TextViewandroid:id="@+id/author"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Author:Bri"/><TextViewandroid:id="@+id/test"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="test:"/></LinearLayout>我还写了⼀个drawable的xml,⾃⼰看吧delete_and_deletegray.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/delete_gray" android:state_focused="false" android:state_pressed="false"></item><item android:drawable="@drawable/delete" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/> <item android:drawable="@drawable/delete" android:state_pressed="true" android:state_selected="false"/><item android:drawable="@drawable/delete" android:state_focused="true" android:state_pressed="true"/></selector>附:完整实例代码点击此处。
panecal计算器使用手册
Panecal计算器使用手册随着科技的发展,计算器作为人们日常生活和工作中不可或缺的工具,已经得到了广泛的应用。
而在各种计算器中,Panecal计算器作为一款功能强大、操作简便的应用软件,备受人们的青睐。
本文将为大家介绍Panecal计算器的各项功能和操作方法,帮助大家更好地使用这款优秀的计算工具。
一、基本介绍Panecal计算器是一款适用于Android评台的科学计算器应用软件。
它具有多项式计算、矩阵计算、方程计算、向量计算等各种功能,能够满足不同用户在日常工作和学习中的计算需求。
Panecal计算器采用直观的操作界面和丰富的功能模块,简单易用,让用户可以快速、高效地进行各种复杂的数学计算。
二、功能模块介绍1. 基本运算Panecal计算器支持常见的加、减、乘、除等基本运算,用户可以通过输入数字和运算符来进行简单的数学计算,如2+3、5*8等。
2. 科学计数在科学计算中,常常涉及到大数字和小数字的计算,Panecal计算器提供了科学计数功能,可以方便地进行科学计数法的运算,如1.2345E3表示1234.5、6.789E-4表示0.0006789等。
3. 括号运算括号运算是复杂计算中常见的操作,Panecal计算器支持括号运算,用户可以通过输入括号来改变计算的优先顺序,如(2+3)*4表示5*4=20。
4. 函数运算Panecal计算器内置了常用的数学函数,如sin、cos、tan、log等,用户可以通过输入函数名和参数来进行函数运算,如sin(30)表示sin30°的计算结果。
5. 单位换算除了数学运算外,Panecal计算器还支持单位换算功能,用户可以方便地进行长度、面积、体积、重量、时间等多种单位之间的换算,如米和英尺的换算、升和加仑的换算等。
6. 矩阵计算在线性代数中,矩阵计算是一项重要的数学运算,Panecal计算器支持矩阵的加、减、乘、转置等多种矩阵运算,用户可以方便地进行各种矩阵运算,如矩阵相乘、矩阵转置等。
简易计算器(Android应用使用Java开发)
简易计算器(Android应用使用Java开发)随着智能手机的普及,手机应用程序也变得越来越多样化和智能化。
其中,计算器应用无疑是人们生活中最常用的一种应用之一。
本文将介绍如何使用Java开发一个简易计算器的Android应用程序。
1. 概述简易计算器是一款可以进行基本的数学计算的应用程序。
用户可以在界面上输入数字和操作符,计算器会自动根据用户的操作给出计算结果。
本应用程序采用Java语言进行开发,运行于Android操作系统。
2. 开发环境在开始开发前,我们需要搭建好Android开发环境。
首先,下载并安装Java Development Kit(JDK),确保版本为最新稳定版。
然后,下载并安装Android Studio,这是一款为Android开发而设计的集成开发环境(IDE)。
3. 创建项目打开Android Studio,并点击"Start a new Android Studio project"来创建一个新的项目。
在弹出的窗口中,填写项目名称、包名等基本信息,并选择适当的设备和目标SDK版本。
4. 设计界面在项目创建完成后,我们需要设计计算器的界面。
可以使用Android Studio自带的可视化UI设计器来拖拽和放置UI元素,也可以手动在XML布局文件中编写界面代码。
界面的核心组件包括输入框、按钮和显示区域。
5. 添加逻辑功能界面设计完成后,我们需要为计算器添加逻辑功能。
创建一个Java类作为计算器的主活动(Activity),在其中实现输入和操作的处理逻辑。
可以使用Android提供的计算相关API,例如使用eval()方法进行表达式计算。
6. 编译和调试在开发过程中,我们可以随时进行编译和调试来检查应用程序的运行情况。
点击Android Studio的运行按钮,选择目标设备并运行应用程序。
在模拟器或真机上进行调试,查看是否符合我们的预期效果。
7. 测试和发布在功能开发和调试完毕后,我们需要进行应用的测试阶段。
安卓Android 编写一个简单的计算器
<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:id="@+id/LayoutMain"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><EditTextandroid:id="@+id/inputString"android:layout_width="fill_parent"android:layout_height="60dp"android:layout_weight="1"android:ems="10"android:inputType="none" ><requestFocus /></EditText><LinearLayoutandroid:id="@+id/LayoutButtons1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/clear"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/clear" /><Buttonandroid:id="@+id/delete"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/delete" /><Buttonandroid:id="@+id/divided"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/divided" /><Buttonandroid:id="@+id/multi"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/multi" /></LinearLayout><LinearLayoutandroid:id="@+id/LayoutButtons2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/seven"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/seven" /><Buttonandroid:id="@+id/eight"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/eight" /><Buttonandroid:id="@+id/nine"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/nine" /><Buttonandroid:id="@+id/minus"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/minus" /></LinearLayout><LinearLayoutandroid:id="@+id/LayoutButtons3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/four"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/four" /><Buttonandroid:id="@+id/five"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/five" /><Buttonandroid:id="@+id/six"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/six" /><Buttonandroid:id="@+id/plus"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/plus" /></LinearLayout><LinearLayoutandroid:id="@+id/LayoutButtons4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="2"android:orientation="horizontal" ><LinearLayoutandroid:id="@+id/LayoutButtons41"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="3"android:orientation="vertical" ><LinearLayoutandroid:id="@+id/LayoutButtons411"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/one"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/one" /><Buttonandroid:id="@+id/two"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/two" /><Buttonandroid:id="@+id/three"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/three" /></LinearLayout><LinearLayoutandroid:id="@+id/LayoutButtons412"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/doublezero"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/double_zero" /><Buttonandroid:id="@+id/zero"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/zero" /><Buttonandroid:id="@+id/point"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:text="@string/point" /></LinearLayout></LinearLayout><LinearLayoutandroid:id="@+id/LayoutButtons42"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"android:orientation="horizontal" ><Buttonandroid:id="@+id/equal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:text="@string/equal" /></LinearLayout></LinearLayout></LinearLayout>package com.nullpointer.calculator.buttons;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import mon.constants.AppConstants; import mon.utils.StringUtils;/***** @author Null Pointer**/public class FunctionButton extends CalculatorButton {/***** @param originalText** @param buttonValue** @return*/@Overridepublic String getResult(String originalText, String buttonValue) { if (AppConstants.CLEAR_STRING.equals(buttonValue)) {return AppConstants.EMPTY_STRING;} else if (AppConstants.DELETE_STRING.equals(buttonValue)) { if (StringUtils.isNotEmpty(originalText)) {return originalText.substring(0, originalText.length() - 1);} else {return AppConstants.EMPTY_STRING;}} else if (AppConstants.EQUAL_STRING.equals(buttonValue)) { return eval(originalText);} else {return AppConstants.EMPTY_STRING;}}/***** @param expression** @return*/private String eval(String expression) {List<String> items = new ArrayList<String>(Arrays.asList(expression .split("\\+|\\-|×|÷")));char[] operators = expression.replaceAll("[^\\+\\-×÷]",AppConstants.EMPTY_STRING).toCharArray();if (items.size() != operators.length + 1) {return AppConstants.ERROR_MESSAGE;}double result = 0d;for (int i = operators.length - 1; i >= 0; i--) {switch (operators[i]) {case AppConstants.OPERATOR_MULTI:result = this.multi(Double.valueOf(items.get(i)),Double.valueOf(items.get(i + 1)));items.remove(i + 1);items.set(i, String.valueOf(result));break;case AppConstants.OPERATOR_DIVIDED:result = this.divided(Double.valueOf(items.get(i)),Double.valueOf(items.get(i + 1)));items.remove(i + 1);items.set(i, String.valueOf(result));break;default:break;}}if (items.size() == 1) {return items.get(0);}operators = expression.replaceAll("[^\\+\\-]",AppConstants.EMPTY_STRING).toCharArray(); for (int i = operators.length - 1; i >= 0; i--) {switch (operators[i]) {case AppConstants.OPERATOR_PLUS:result = this.plus(Double.valueOf(items.get(i)),Double.valueOf(items.get(i + 1)));items.remove(i + 1);items.set(i, String.valueOf(result));break;case AppConstants.OPERATOR_MINUS:result = this.minus(Double.valueOf(items.get(i)),Double.valueOf(items.get(i + 1)));items.remove(i + 1);items.set(i, String.valueOf(result));break;default:break;}}if (items.size() == 1) {return items.get(0);} else {return AppConstants.ERROR_MESSAGE;}}private double plus(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.add(b2).doubleValue();}private double minus(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.subtract(b2).doubleValue();}private double multi(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.multiply(b2).doubleValue();}private double divided(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.divide(b2, 10, BigDecimal.ROUND_HALF_UP).doubleValue();}}需要完整的源代码私信我或者发我邮箱*****************明情况(注:下载才发!)。
android简单计算器代码
android简单计算器代码————————————————————————————————作者:————————————————————————————————日期:2package hua.xing.demo;import android。
app。
Activity;import android。
os。
Bundle;import android.view。
View;import android.view.View.OnClickListener;import android。
widget.Button;import android.widget。
EditText;public class CalculatordemoActivity extends Activity implements OnClickListener { /** Called when the activity is first created。
*/private Button but0 = null;private Button but1 = null;private Button but2 = null;private Button but3 = null;private Button but4 = null;private Button but5 = null;private Button but6 = null;private Button but7 = null;private Button but8 = null;private Button but9 = null;private Button dim = null;private Button add = null;private Button sub = null;private Button mult = null;private Button div = null;private Button equ = null;private EditText etext = null;private double value = 0;private String str1 = null;private String tem = ””;private String sign = ”a";@Overridepublic void onCreate(Bundle savedInstanceState){ super。
在Android Studio中开发一个简单的计算器应用
在Android Studio中开发一个简单的计算器应用随着智能手机的普及,计算器应用成为了人们生活中不可或缺的工具之一。
为了满足用户的需求,我们决定在Android Studio中开发一个简单的计算器应用。
这个应用将提供基本的四则运算功能,并且界面简洁易用。
首先,在Android Studio中创建一个新的项目。
选择合适的应用名称和包名。
接下来,我们需要设计应用的用户界面。
我们希望用户界面简洁明了,方便用户使用。
可以考虑使用一个TextView显示计算结果,以及多个Button用于输入数字和操作符。
在开发计算器的过程中,我们需要处理用户的输入并进行相应的计算。
为此,我们可以使用一个EditText控件来接收用户的输入,并通过按钮的点击事件来获取用户点击的数字和操作符。
然后,我们可以使用Java中的数学库来进行四则运算,并将结果显示在TextView中。
通过Android Studio提供的布局编辑器,我们可以轻松地将TextView和Button布局在界面上。
可以使用LinearLayout或RelativeLayout进行布局,根据需要设置各个控件之间的位置和大小。
此外,还可以设置按钮的点击事件,使其能够响应用户的输入。
在处理用户输入时,需要考虑一些特殊情况。
例如,当用户输入非法字符或进行除法时需要进行错误处理。
可以通过在代码中添加条件判断语句来实现这些功能。
另外,还可以添加一些额外的功能,如清除输入、撤销操作等,以提升用户体验。
在开发过程中,可以使用Android Studio提供的调试工具来检查代码是否正常运行。
可以设置断点,逐步执行代码,并查看变量的值。
这些工具能够帮助我们快速定位和修复错误。
为了使应用具有良好的用户体验,我们还可以添加一些动画效果和过渡效果。
例如,当用户点击按钮时,可以添加按钮缩放、淡入淡出等动画效果,使界面更加生动有趣。
除了基本功能以外,我们还可以考虑添加更多的功能来完善应用。
Android开发实战:创建一个简单的计算器应用(三)
Android开发实战:创建一个简单的计算器应用随着智能手机的普及,Android操作系统逐渐成为了一个重要的移动应用平台。
作为开发者,学习并掌握Android应用开发技术,可以帮助我们打造出各类实用的移动应用。
本文将介绍如何创建一个简单的计算器应用,以帮助读者入门Android开发。
1. 前言计算器应用作为一种基础的工具类应用,可以在日常生活中得到很多实际应用场景。
通过自己动手开发一个计算器应用,不仅可以巩固所学的Android开发知识,同时也能够提升自己的动手能力。
2. 准备工作首先,我们需要安装Android开发环境。
Android开发主要使用Java语言进行编程,并依赖于Android SDK(开发工具包)。
在安装Android Studio之后,我们可以创建一个新的Android项目,该项目将用于我们的计算器应用。
3. 创建UI界面UI界面是用户与应用进行交互的重要组成部分。
在我们的计算器应用中,我们可以使用Android的布局文件来定义我们的UI界面。
可以使用LinearLayout或者RelativeLayout等布局容器来组织UI元素的摆放位置。
通过设置按钮的宽高、位置等属性,我们可以让界面看起来更加美观。
同时,我们还可以为按钮添加点击事件,以实现按钮的功能。
4. 实现计算逻辑在计算器应用中,最重要的部分是实现计算逻辑。
我们可以为不同的按钮设置不同的点击事件,以实现加减乘除等运算功能。
在事件触发的回调函数中,我们可以获取用户输入的数字和运算符,然后进行相应的计算逻辑处理,并将结果显示在屏幕上。
为了方便计算逻辑的实现,我们可以使用Java提供的数学库函数或者自定义方法来完成运算操作。
通过合理地组织代码,我们可以保证计算逻辑的正确性和效率。
5. 错误处理和边界情况在实际开发中,一个好的应用应该能够处理各种错误和边界情况。
例如,除数为零、输入格式不正确等情况都应该进行适当的提示。
为了保证应用的稳定性和可靠性,我们可以使用条件判断和异常处理等技术手段,来处理异常情况。
AndroidStudio实现简易计算器(表格布局TableLayout)
AndroidStudio实现简易计算器(表格布局TableLayout)这是⼀个运⽤⽹格布局来做的简易计算器,可能没有那么美观,⼤家可以继续完善⾸先先看看成果吧⾸先先建⼀个新的Project Calculator然后先编写颜⾊背景⽂件创建⼀个gray.xml,哪⾥创建呢?如图在drawable下右击,选择new–Drawable resource file第⼀个是⽂件名字,第⼆个属性可以⾃⼰选择,我们这⾥前两个⽂件选择shape,第三个⽂件选selector,附上颜⾊背景代码gray.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"><corners android:radius="5dp"/><solid android:color="#f9f9f9"/><strokeandroid:width="2dp"android:color="#ffa600"/></shape>orange.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"><corners android:radius="5dp"/> // 圆⾓<solid android:color="#F7B684"/> //颜⾊</shape>white.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"><corners android:radius="5dp"/><solid android:color="#ffffff"/><strokeandroid:width="1dp"android:color="#ffa600"/></shape>change.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/gray"/> //默认颜⾊<item android:drawable="@drawable/orange" android:state_pressed="true"/> //按下的改变的颜⾊</selector>这个是当你按下按键的时候按键会改变颜⾊接下来就是布局⽂件了activity_main.xml我⽤的是表格布局,⼤家也可以⽤表格布局来写,效果会好⼀些<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#D8ECF3"><TextViewandroid:gravity="bottom|right"android:textSize="70dp"android:singleLine="true"android:layout_margin="15dp"android:layout_width="match_parent"android:layout_height="120dp"android:background="@drawable/white"android:id="@+id/textView"/><TableRowandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="10dp"><Buttonandroid:id="@+id/btn_clean"android:layout_marginLeft="10dp"android:background="@drawable/orange"android:gravity="center"android:text="C"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_del"android:layout_marginLeft="10dp"android:layout_span="2"android:background="@drawable/gray"android:gravity="center"android:text="Del"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_divide"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="@drawable/gray"android:gravity="center"android:layout_span="1"android:text="/"android:textSize="25sp" /></TableRow><TableRowandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="10dp"><Buttonandroid:id="@+id/btn_7"android:layout_marginLeft="10dp"android:background="@drawable/white"android:gravity="center"android:text="7"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_8"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="8"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_9"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="9"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_multiply"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="@drawable/gray" android:gravity="center"android:text="*"android:textSize="25sp" /></TableRow><TableRowandroid:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp"><Buttonandroid:id="@+id/btn_4"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="4"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_5"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="5"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_6"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="6"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_add"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="@drawable/gray" android:gravity="center"android:text="+"android:textSize="25sp" /></TableRow><TableRowandroid:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp"><Buttonandroid:id="@+id/btn_1"android:layout_marginLeft="10dp"android:background="@drawable/white" android:gravity="center"android:text="1"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_2"android:layout_marginLeft="10dp"android:background="@drawable/white"android:gravity="center"android:text="2"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_3"android:layout_marginLeft="10dp"android:background="@drawable/white"android:gravity="center"android:text="3"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_minus"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="@drawable/gray"android:gravity="center"android:text="-"android:textSize="25sp" /></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_marginTop="10dp"><Buttonandroid:id="@+id/btn_0"android:layout_marginLeft="10dp"android:layout_span="2"android:background="@drawable/white"android:gravity="center"android:text="0"android:textSize="25sp" /><Buttonandroid:id="@+id/btn_point"android:layout_marginLeft="10dp"android:layout_span="1"android:background="@drawable/white"android:gravity="center"android:text="."android:textSize="25sp" /><Buttonandroid:id="@+id/btn_equal"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_span="1"android:background="@drawable/gray"android:gravity="center"android:text="="android:textSize="25sp" /></TableRow></TableLayout>接下来就是MainActivity.javapackage com.example.calculator;import android.support.v7.app.AppCompatActivity; import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity implements View.OnClickListener {Button btn_clean,btn_del,btn_divide,btn_0,btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9, btn_multiply,btn_add,btn_minus,btn_point,btn_equal;TextView textView;boolean clear_flag; //清空标识@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate (savedInstanceState);setContentView (yout.activity_main);btn_0 = findViewById(R.id.btn_0); //初始化btn_1 = findViewById(R.id.btn_1);btn_2 = findViewById(R.id.btn_2);btn_3 = findViewById(R.id.btn_3);btn_4 = findViewById(R.id.btn_4);btn_5 = findViewById(R.id.btn_5);btn_6 = findViewById(R.id.btn_6);btn_7 = findViewById(R.id.btn_7);btn_8 = findViewById(R.id.btn_8);btn_9 = findViewById(R.id.btn_9);btn_multiply = findViewById(R.id.btn_multiply);btn_divide = findViewById(R.id.btn_divide);btn_add = findViewById(R.id.btn_add);btn_minus = findViewById(R.id.btn_minus);btn_point = findViewById(R.id.btn_point);btn_del =findViewById(R.id.btn_del);btn_equal = findViewById(R.id.btn_equal);btn_clean = findViewById(R.id.btn_clean);textView = findViewById(R.id.textView);btn_0.setOnClickListener(this); //设置按钮的点击事件btn_1.setOnClickListener(this);btn_2.setOnClickListener(this);btn_3.setOnClickListener(this);btn_4.setOnClickListener(this);btn_5.setOnClickListener(this);btn_6.setOnClickListener(this);btn_7.setOnClickListener(this);btn_8.setOnClickListener(this);btn_9.setOnClickListener(this);btn_minus.setOnClickListener(this);btn_multiply.setOnClickListener(this);btn_del.setOnClickListener(this);btn_divide.setOnClickListener(this);btn_point.setOnClickListener(this);btn_add.setOnClickListener(this);btn_equal.setOnClickListener(this);btn_clean.setOnClickListener(this);}public void onClick(View v) {String str = textView.getText().toString();switch(v.getId ()){case R.id.btn_0:case R.id.btn_1:case R.id.btn_2:case R.id.btn_3:case R.id.btn_4:case R.id.btn_5:case R.id.btn_6:case R.id.btn_7:case R.id.btn_8:case R.id.btn_9:case R.id.btn_point:if(clear_flag){clear_flag=false;str="";textView.setText ("");}textView.setText(str+((Button)v).getText ());break;case R.id.btn_add:case R.id.btn_minus:case R.id.btn_multiply:case R.id.btn_divide:if(clear_flag){clear_flag=false;textView.setText("");}textView.setText(str+" "+((Button)v).getText()+" ");break;case R.id.btn_del:if(clear_flag){clear_flag=false;textView.setText ("");}else if (str != null && !str.equals ("")){textView.setText(str.substring(0,str.length()-1)); //删除⼀个字符}break;case R.id.btn_clean:clear_flag=false;str = "";textView.setText(""); //清空⽂本内容break;case R.id.btn_equal:getResult(); //获取结果break;}}private void getResult() { //算法String s = textView.getText().toString();if(s == null || s.equals ("")){return;}if (!s.contains ("")){return;}if (clear_flag){clear_flag=false;return;}clear_flag=true;String str1 = s.substring(0,s.indexOf(" ")); // 获取到运算符前⾯的字符String str_y = s.substring(s.indexOf(" ")+1,s.indexOf(" ")+2); //获取到运算符 String str2 = s.substring(s.indexOf(" ")+ 3); //获取到运算符后⾯的字符double result = 0;if (!str1.equals ("") && !str2.equals ("")){double num1 = Double.parseDouble(str1); //将str1、str2强制转化为double类型 double num2 = Double.parseDouble(str2);if (str_y.equals ("+")){result = num1 + num2;}else if (str_y.equals ("-")){result = num1 - num2;}else if (str_y.equals ("÷")){if (num2 == 0){result = 0;}else {result = num1/num2;}}else if (str_y.equals ("*")){result = num1*num2;}if (!str1.contains (".") && !str2.contains (".") && !s.equals ("÷")){int k = (int) result; //强制转换textView.setText (k);}else{textView.setText (result+"");}}else if (!str1.equals ("") && str2.equals ("")){textView.setText (s);}else if (str1.equals ("") && !str2.equals ("")){double num2 = Double.parseDouble(str2);if (s.equals ("+")){result = 0 + num2;}else if (s.equals("-")){result = 0 - num2;}else if (s.equals("×")){result = 0;}else if (s.equals("÷")){result = 0;}if (!str2.contains (".")) {int r = (int) result;textView.setText (r + "");} else {textView.setText (result + "");}} else {textView.setText ("");}}}这⾥的算法可能写的没有那么好,⼤家可以⽹上找找其他案例参照⼀下,继续完善算法更多计算器功能实现,请点击专题:进⾏学习关于Android计算器功能的实现,查看专题:进⾏学习。
Android实现简单计算器界面
Android实现简单计算器界⾯本⽂实例为⼤家分享了Android实现计算器界⾯的具体代码,供⼤家参考,具体内容如下XML⽂件:<?xml version="1.0" encoding="utf-8"?><GridLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:rowCount="6"android:columnCount="4"android:id="@+id/root"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_columnSpan="4"android:textSize="50sp"android:layout_marginLeft="2pt"android:layout_marginRight="2pt"android:padding="3pt"android:layout_gravity="right"android:background="#eee"android:textColor="#000"android:text="0" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_columnSpan="4"android:text="清除"/></GridLayout>MainActivity:package .learnthree;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.widget.Button;import android.widget.GridLayout;import android.widget.TextView;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {GridLayout gridLayout;String[] chars = new String[]{"7","8","9","÷","4","5","6","x","1","2","3","-",".","0","=","="};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);gridLayout = (GridLayout)findViewById(R.id.root);for(int i = 0;i < chars.length;i++){Button bn = new Button(this);bn.setText(chars[i]);bn.setTextSize(40);bn.setPadding(5,35,5,35);GridLayout.Spec rowSpec = GridLayout.spec(i/4 + 2);GridLayout.Spec columnSpec = GridLayout.spec(i%4);youtParams params = new youtParams(rowSpec,columnSpec);params.setGravity(Gravity.FILL);gridLayout.addView(bn,params);}}}效果:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Android开发实战:创建一个简单的计算器应用(八)
Android开发实战:创建一个简单的计算器应用引言计算器应用是移动设备上常用的工具之一。
在这篇文章中,我们将学习如何使用Android Studio开发一个简单的计算器应用,并通过实际的代码示例来展示开发的过程。
一、准备工作在开始开发之前,我们需要准备一些必要的东西。
首先,我们需要安装Android Studio,这是一款功能强大的集成开发环境,专门用于Android应用程序的开发。
其次,我们还需要了解一些基本的Java 编程知识,因为Android应用程序使用Java语言编写。
二、创建项目在Android Studio中,我们可以通过几个简单的步骤来创建一个新的Android项目。
首先,我们打开Android Studio并选择“Start a new Android Studio project”。
然后,我们输入项目的名称和包名,并选择项目的目标平台版本。
最后,我们选择一个空的活动模板并单击“Finish”按钮。
这样就创建了一个新的Android项目。
三、设计界面接下来,我们需要设计计算器应用的用户界面。
Android Studio 提供了一个可视化的界面设计器,使界面设计变得更加简单快捷。
我们可以通过拖拽组件并设置属性的方式来创建界面。
我们可以将计算器的用户界面设计成一个包含数字按钮、运算符按钮和结果显示区域的布局。
通过加入适当的约束和设置合适的布局属性,我们可以实现一个简洁而美观的界面。
四、编写代码设计好界面后,我们需要为按钮设置点击事件,并编写代码来实现计算器的核心功能。
在Java文件中,我们可以使用按钮的ID来获取按钮的实例,并为其设置一个点击事件监听器。
当用户点击一个按钮时,事件监听器将调用相应的方法来处理相应的逻辑。
在计算器应用中,我们需要实现加、减、乘和除四种基本运算。
我们可以通过使用Java的数学运算符和条件语句来实现这些逻辑。
当用户点击等号按钮时,我们将根据当前的运算符和操作数来进行相应的计算,并将结果显示在结果显示区域。
Android开发实战:创建一个简单的计算器应用(七)
Android开发实战:创建一个简单的计算器应用在当今科技高度发达的时代,移动应用程序已经成为了人们日常生活中必不可缺的一部分。
而Android平台作为其中最为流行和广泛使用的操作系统之一,拥有着庞大的用户群体和开发者社区。
本文将以Android开发实战为主题,介绍如何创建一个简单的计算器应用。
第一部分:项目结构与界面设计在开始开发Android应用之前,我们首先需要准备好开发环境。
通过Android Studio这一集成开发环境,我们可以方便地创建和管理我们的项目。
创建一个新的Android项目后,我们需要确定好项目的结构和界面设计。
Android应用通常由多个Activity组成,每个Activity代表一个独立的用户界面。
在本案例中,我们将创建两个Activity:一个用于显示计算器的主界面,另一个用于显示计算结果的界面。
在主界面中,我们可以使用LinearLayout或RelativeLayout等布局方式来放置按钮和文本框。
为了提升用户体验,我们还可以为按钮设置点击效果,并对文本框进行格式化操作,使其能够显示计算表达式和结果。
第二部分:基本功能实现在界面设计完成后,我们进入到计算器应用的基本功能实现阶段。
首先,我们需要为每个按钮设置点击事件,以便在用户点击按钮时执行相应的操作。
通过监听按钮的点击事件,我们可以获取到按钮上的文本内容,并将其转化为相应的操作符或数字。
随后,我们需要定义一些函数来处理这些操作符和数字。
例如,我们可以定义一个用于计算两个数字相加的函数,并在用户点击加号按钮时调用该函数。
同样地,我们还可以定义函数来处理减法、乘法和除法等操作。
为了实现计算器的基本功能,我们还需要一个数据结构来保存用户输入的数字和操作符。
可以使用一个栈来保存这些数据,并通过进栈和出栈操作来模拟计算的过程。
当用户点击等号按钮时,我们可以按照栈中数据的顺序,执行相应的计算操作,并将结果显示在结果界面中。
Android开发实战:创建一个简单的计算器应用(五)
Android开发实战:创建一个简单的计算器应用引言:随着智能手机的普及,移动应用程序的开发成为了一个热门话题。
Android作为目前市场上最受欢迎的移动操作系统之一,吸引了许多开发者的关注和研究。
本篇文章将介绍如何使用Android开发一个简单的计算器应用,帮助读者快速理解Android应用的基本开发原理。
1. 搭建开发环境首先,我们需要准备好开发环境。
下载并安装Android Studio,它是官方提供的开发工具,提供了一套完整的开发工具链,可用于快速开发Android应用。
安装完成后,我们可以创建一个新的Android项目。
2. 创建用户界面一个好看且易用的用户界面是一个成功的应用的关键。
在Android Studio中,我们可以使用XML文件来描述应用的用户界面。
创建一个新的XML布局文件,并使用约束布局来确定界面中各个组件的位置和大小。
在计算器应用中,我们需要添加数字按钮、运算符按钮以及显示结果的文本框等组件。
3. 处理用户输入实现一个计算器应用需要处理用户的输入并进行相应的运算。
在Android中,我们可以为每个按钮添加点击事件监听器,并在事件处理函数中获取按钮的文本信息。
通过判断不同的按钮文本,我们可以执行不同的操作,如输入数字或进行运算。
4. 实现计算逻辑计算逻辑是计算器应用的核心部分。
在Android开发中,我们可以使用Java语言进行逻辑的实现。
根据用户的输入,我们可以通过遍历按钮文本的方式,来构建一个表达式字符串。
然后,利用Java提供的计算函数,对表达式进行求值,得到最终的结果。
最后,将结果展示到用户界面上。
5. 优化和测试在完成计算器应用的基本功能后,我们可以进行一些优化和测试工作。
例如,我们可以添加一些边界条件的判断,防止除数为零等异常情况。
另外,我们可以对应用进行性能测试,以确保应用在不同手机和不同系统版本上都具有良好的运行性能。
6. 发布和推广最后一步是将我们的应用发布到应用商店,并进行一定的推广工作。
androidstudio实现简单的计算器功能
androidstudio实现简单的计算器功能本⽂实例为⼤家分享了android studio实现计算器的具体代码,供⼤家参考,具体内容如下先来个效果图:功能:满⾜加减乘除四则运算规则,有回退、清除功能。
下⾯的代码只是完成基本功能,若添加背景图先看看下⾯的⽅法:Android Studio App设置背景图⽚1、本地准备好图⽚,复制它,粘贴进mipmap(drawable)⽂件夹。
2、在activity_main.xml⾥添加下⾯代码,注意添加位置。
3、完成,效果图:content_main.xml⽂件(页⾯布局,content_main.xml代码包含在activity_main.xml⽂件中):<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:id="@+id/next"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:context=".MainActivity"tools:showIn="@layout/activity_main"><!--<TextView--><!--android:layout_width="wrap_content"--><!--android:layout_height="wrap_content"--><!--android:text="Hello World!"--><!--app:layout_constraintBottom_toBottomOf="parent"--><!--app:layout_constraintLeft_toLeftOf="parent"--><!--app:layout_constraintRight_toRightOf="parent"--><!--app:layout_constraintTop_toTopOf="parent" />--><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="match_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/input"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:editable="false"android:hint="@string/shuru" /><EditTextandroid:id="@+id/output"android:layout_width="match_parent"android:layout_height="70dp"android:layout_gravity="center"android:editable="true"android:gravity="right"android:hint="@string/shuchu" /><RelativeLayoutandroid:layout_width="350dp"android:layout_height="wrap_content"android:layout_gravity="center"><Buttonandroid:id="@+id/clear"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:text="@string/clear"android:textSize="40sp" /><Buttonandroid:id="@+id/back"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/clear" android:text="@string/back"android:textSize="40sp" /><Buttonandroid:id="@+id/divide"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/back" android:text="@string/divide"android:textSize="40sp" /><Buttonandroid:id="@+id/multiply"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/divide" android:text="@string/multiply"android:textSize="40sp" /><Buttonandroid:id="@+id/seven"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@id/clear"android:text="@string/seven"android:textSize="40sp" /><Buttonandroid:id="@+id/eight"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/seven" android:layout_below="@id/divide"android:text="@string/eight"android:textSize="40sp" /><Buttonandroid:id="@+id/nine"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/multiply" android:layout_toRightOf="@id/eight" android:text="@string/nine"android:textSize="40sp" /><Buttonandroid:id="@+id/subtract"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/multiply" android:layout_toRightOf="@id/nine" android:text="@string/subtract"android:textSize="40sp" /><Buttonandroid:id="@+id/four"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@id/seven"android:text="@string/four"android:textSize="40sp" /><Buttonandroid:id="@+id/five"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/eight"android:layout_toRightOf="@id/four" android:text="@string/five"android:textSize="40sp" /><Buttonandroid:id="@+id/six"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/nine"android:layout_toRightOf="@id/five" android:text="@string/six"android:textSize="40sp" /><Buttonandroid:id="@+id/add"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@id/subtract"android:layout_toRightOf="@id/six"android:text="@string/add"android:textSize="40sp" /><Buttonandroid:id="@+id/one"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@id/four"android:text="@string/one"android:textSize="40sp" /><Buttonandroid:id="@+id/two"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/five"android:layout_toRightOf="@id/one"android:text="@string/two"android:textSize="40sp" /><Buttonandroid:id="@+id/three"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/six"android:layout_toRightOf="@id/two"android:text="@string/three"android:textSize="40sp" /><Buttonandroid:id="@+id/result"android:layout_width="wrap_content"android:layout_height="146dp"android:layout_alignParentRight="true"android:layout_below="@id/add"android:layout_toRightOf="@id/three"android:text="@string/result"android:textSize="40sp" /><Buttonandroid:id="@+id/zero"android:layout_width="175dp"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@id/one"android:text="@string/zero"android:textSize="40sp" /><Buttonandroid:id="@+id/dot"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/three"android:layout_toRightOf="@id/zero"android:text="@string/dot"android:textSize="40sp" /></RelativeLayout></LinearLayout></android.support.constraint.ConstraintLayout>strings.xml(content_main.xml代码中的⼀些变量在此代码中定义的):<resources><string name="app_name">Calculator</string><string name="action_settings">Settings</string><string name="title_activity_page2">page2</string><string name="next">下⼀页</string><string name="zero">0</string><string name="one">1</string><string name="two">2</string><string name="three">3</string><string name="four">4</string><string name="five">5</string><string name="six">6</string><string name="seven">7</string><string name="eight">8</string><string name="nine">9</string><string name="add">+</string><string name="subtract">-</string><string name="multiply">*</string><string name="divide">/</string><string name="clear">CE</string><string name="back"><-</string><string name="result">=</string><string name="shuru">请输⼊:</string><string name="shuchu">结果:</string><string name="dot">.</string><string name="resultText">计算式</string></resources>MainActivity.Java(计算器中实现计算功能的核⼼代码):package com.example.dell.calculator;import android.content.Intent;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.view.Menu;import android.view.MenuItem;import android.app.Activity;import android.content.Context;import android.view.View.OnClickListener;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Button;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.DecimalFormat;import java.text.NumberFormat;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MainActivity extends AppCompatActivity {private EditText output = null;private EditText input = 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;private Button btnsubtract = null;private Button btnmultiply = null;private Button btndivide = null;private Button btnclear = null;private Button btnback = null;private Button btndot = null;private Button btnresult = null;private String text = "";//保存输⼊的数字和符号private Double result = 0.0;//输出结果@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(toolbar);output = (EditText) findViewById(R.id.output);input = (EditText) findViewById(R.id.input);btn0 = (Button) findViewById(R.id.zero);btn1 = (Button) findViewById(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(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);btnback = (Button) findViewById(R.id.back);btndot = (Button) findViewById(R.id.dot);btnresult = (Button) findViewById(R.id.result);//设置按钮侦听事件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(listener);btn9.setOnClickListener(listener);btnadd.setOnClickListener(listener);btnsubtract.setOnClickListener(listener);btnmultiply.setOnClickListener(listener);btndivide.setOnClickListener(listener);btnclear.setOnClickListener(listener);btnback.setOnClickListener(listener);btndot.setOnClickListener(listener);btnresult.setOnClickListener(listener);FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);fab.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}//public void onClickNext(View view) {// Intent intent = new Intent(this,page2.class);// startActivity(intent);// }private OnClickListener listener = new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {//输⼊数字case R.id.zero:num(0);break;case R.id.one:num(1);break;case R.id.two:num(2);break;case R.id.three:num(3);break;case R.id.four:num(4);break;case R.id.five:num(5);break;case R.id.six:num(6);break;case R.id.seven:num(7);break;case R.id.eight:num(8);break;case R.id.nine:num(9);break;case R.id.dot:dot();break;//执⾏运算case R.id.add:add();break;case R.id.subtract:sub();break;case R.id.multiply:multiply();break;case R.id.divide:divide();break;case R.id.clear:clear();break;case R.id.back:back();break;//计算结果case R.id.result:result();break;default:break;}input.setText(text);output.setText(String.valueOf(result)); }};private void num(int i) {// TODO Auto-generated method stubtext = text + String.valueOf(i);}private void dot() {// TODO Auto-generated method stubtext = text + ".";}private void clear() {// TODO Auto-generated method stubtext = "";result = null;input.setText("");output.setText("");}private void back() {// TODO Auto-generated method stubString str = text.substring(0, text.length()-1); text = str;}private void add() {// TODO Auto-generated method stubtext += "+";}private void sub() {// TODO Auto-generated method stubtext += "-";}private void multiply() {// TODO Auto-generated method stubtext += "*";}private void divide() {// TODO Auto-generated method stubtext += "/";}//计算输出结果private void result() {// TODO Auto-generated method stubresult = testOperation(text);}public Double testOperation(String s){//分割字符然后放进数组String s1 =s.replace("+","-");String[] str = s1.split("-");double total1=0;//先遍历数组,把⾥⾯的乘除结果算出来for(String str1:str){if(str1.contains("*")||str1.contains("/")){double total = 0;for(int i =0;i<str1.length();){int count =1;a:for(int j =i+1;j<str1.length();j++){char c =str1.charAt(j);if(c=='*'||c=='/'){break a;}else{count++;}}//将数字截取出来String s2 =str1.substring(i,i+count);double d = Double.parseDouble(s2);if(i==0){total = d;}else{char c1 = str1.charAt(i-1);if(c1=='*'){total*=d;}else if(c1=='/'){//如果除数为0,直接返回null;if(d == 0)return null;total/=d;}}i+=count+1;}s= s.replace(str1, total+"");}}//进⾏加减运算for(int i =0;i<s.length();i++){int count =1;a:for(int j=i+1;j<s.length();j++){char c = s.charAt(j);if(c=='+'||c=='-'){break a;}else{count++;}}String s3= s.substring(i,i+count);double d2 = Double.parseDouble(s3);if(i==0){total1 = d2;}else{char c = s.charAt(i-1);if(c=='+'){total1+=d2;}else if(c=='-'){total1-=d2;}}i+=count;}return total1;}}更多计算器功能实现,请点击专题:进⾏学习关于Android计算器功能的实现,查看专题:进⾏学习。
Android开发实战:创建一个简单的计算器应用(四)
Android开发实战:创建一个简单的计算器应用现在,随着智能手机的普及,Android操作系统成了最受欢迎的移动操作系统之一。
作为一个开发者,学习如何创建Android应用是非常有用的。
在本篇文章中,我将详细介绍如何创建一个简单的计算器应用。
1. 概述在本节中,我们将概述我们将要创建的计算器应用。
我们的应用将有一个简洁而直观的用户界面,用户可以输入数字和进行简单的四则运算。
我们将使用Java编程语言和Android Studio开发工具来实现这个应用。
2. 设计用户界面在这一节中,我们将讨论如何设计应用的用户界面。
我们将使用Android Studio的布局编辑器来创建一个用于输入数字和进行运算的界面。
界面应该简洁、易于使用,并且在不同尺寸的设备上都能正常显示。
3. 实现基本功能在这一节中,我们将介绍如何实现应用的基本功能。
我们需要编写代码来处理用户输入,进行运算,并将结果显示在屏幕上。
我们将使用Java编程语言来编写这些代码,并使用Android Studio的调试工具来调试代码。
4. 添加高级功能在这一节中,我们将讨论如何添加一些高级功能到我们的应用中。
例如,我们可以添加一个功能来处理浮点数运算,或者添加一个功能来处理百分比计算。
我们还可以为用户提供选择不同的主题颜色的选项,以使应用更加个性化。
5. 优化性能在这一节中,我们将介绍如何优化应用的性能。
我们将使用一些技巧和技术来减少应用的内存使用和CPU占用,并提高应用的响应速度。
我们还将介绍如何使用Android设备的硬件功能来提高应用的性能。
6. 调试和测试在这一节中,我们将讨论如何进行应用的调试和测试。
我们将介绍一些常用的调试和测试工具,并提供一些建议来帮助您更好地调试和测试您的应用。
我们还将介绍如何使用Android设备的模拟器来测试应用。
7. 发布应用在这一节中,我们将介绍如何发布您的应用。
我们将讨论如何准备应用的发布版本,并提供一些发布应用时应注意的事项。
Android开发实战:创建一个简单的计算器应用(二)
Android开发实战:创建一个简单的计算器应用引言Android操作系统的普及使得移动应用开发变得异常火热。
作为移动应用开发的主要平台之一,Android系统吸引了众多开发者的目光。
本文将以一个简单的计算器应用为例,带领读者一起进入Android开发的实战之旅。
一、环境设置与开发工具选择在开始开发前,我们需要准备相应的环境和工具。
首先,确保你的电脑已安装了Java运行环境(JRE)和Android开发工具包(SDK)。
其次,下载并安装一款适合的集成开发环境(IDE),如Android Studio或Eclipse ADT等。
二、创建新项目在Android Studio中,点击File菜单,选择New,然后选择New Project。
在弹出的窗口中,填写应用的名称和包名,选择所需的最低Android版本以及其他相关配置。
点击Finish后,Android Studio将自动生成项目的目录结构。
三、界面设计一个好看且易用的界面是每个应用的关键所在。
在开发计算器应用时,我们将创建一个简洁而美观的界面。
在res/layout目录下,右键点击layout文件夹,选择New,然后选择Layout Resource File。
给布局文件起一个名字,例如activity_,并使用Drag and Drop工具将按钮、文本框等UI元素放置到布局中。
四、逻辑实现界面设计完成后,我们开始为计算器应用添加相应的逻辑。
在文件中,我们可以使用Java编写计算器的核心算法。
通过监听按钮的点击事件,获取按钮上的文本内容,并根据不同的按钮内容执行相应的操作,最后将结果显示在文本框中。
五、调试与测试完成逻辑实现后,我们需要对应用进行调试和测试。
在Android Studio中,点击Run菜单,选择Run 'app',将应用安装到模拟器或真机上。
同时,我们可以使用Android Studio提供的调试工具对应用进行单步调试,查看每一步的执行情况,以及变量的值。
Android开发实战:创建一个简单的计算器应用(一)
Android开发实战:创建一个简单的计算器应用在当今的移动应用开发领域,Android平台凭借其广泛的用户群体和开放的生态系统成为了最受关注和热门的开发平台之一。
本文将引导读者通过实际案例,学习如何使用Android Studio和Java语言开发一个简单的计算器应用。
第一步:创建项目打开Android Studio并选择“创建新项目”,然后填写应用的名称和包名等信息。
选择适当的最低API级别和目标API级别,这取决于您所需的最低兼容版本和目标用户群。
第二步:设计界面在项目结构中打开“res”文件夹,然后右击“layout”文件夹并选择“新建布局资源文件”。
在弹出的对话框中输入布局文件的名称,并选择“约束布局”作为根布局。
通过拖拽和调整视图的位置和大小,设计一个简洁明了的计算器界面,包括数字按钮、运算符按钮和显示结果的文本框。
第三步:编写代码在“java”文件夹下的包名文件夹中,找到并打开“”文件。
在类的内部,创建必要的成员变量和UI元素的引用,如按钮和文本框。
然后,在“onCreate”方法中使用“findViewById”方法将UI元素与代码中的实例进行关联。
接下来,编写计算逻辑的代码。
您可以使用Java语言提供的数学运算方法,例如“add”、“subtract”、“multiply”和“divide”等。
在用户点击等号按钮时,获取用户输入的数字和运算符,并将其传递给计算方法进行计算。
最后,将计算结果显示在文本框中。
第四步:测试和调试使用模拟器或真实设备运行应用,并在计算器界面上测试各种场景和功能。
确保计算逻辑和用户交互的一致性,并处理各种可能的异常情况。
如果发现问题或错误,使用调试工具和日志输出来跟踪和修复错误。
第五步:发布应用一旦您对应用的功能和用户体验感到满意,您可以将其准备以APK文件的形式发布到Google Play商店或其他应用市场。
在发布前,确保应用的版本号、应用图标、应用截图和应用描述等信息准备完备。
Android实现简易计算器小程序
Android实现简易计算器⼩程序本⽂实例为⼤家分享了Android实现简易计算器⼩程序的具体代码,供⼤家参考,具体内容如下⽬标效果:通过编写代码,可以实现整数和⼩数的加减乘除运算,以及删除和清空的功能。
1.页⾯中Button使⽤的是线性布局,最外边⼀个是⽗布局,第⼀⾏C,DEL,/,*为第⼀个⼦布局,第⼆⾏7,8,9,-为第⼆个⼦布局,第三⾏4,5,6,+为第三个⼦布局,第四五⾏为第四个⼦布局,第四个⼦布局中还有两个相当于是孙布局的级别,1,2,3为第⼀个孙布局,0和.为第⼆个孙布局,=在两个孙布局之外第四个⼦布局以内。
因为计算器的⽔平竖直排列⼗分鲜明,所以可以⽤线性布局,当然也可以⽤表格布局来进⾏排布。
2.activity_main.xml页⾯⽤于存放所有控件。
activity_main.xml页⾯:<LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_marginTop="40dp"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/etInput"android:layout_width="310dp"android:layout_height="60dip"android:editable="false" //代表不能进⾏键盘输⼊android:gravity="right" //⽂字靠右边android:layout_gravity="center"android:background="@drawable/white_bg"/> <!-- 设置输⼊框的背景,为⼀个xml⽂件 --><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:gravity="center_horizontal"android:orientation="horizontal" > <!-- 代表⽔平排布 --><Buttonandroid:id="@+id/btClear"android:background="@drawable/white_select" //设置按钮的背景,为⼀个xml⽂件android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="C" /><Buttonandroid:textSize="20sp"android:text="DEL" /><Buttonandroid:id="@+id/btDivide"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="/" /><Buttonandroid:id="@+id/btMul"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="*" /></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:gravity="center_horizontal"android:orientation="horizontal" ><Buttonandroid:id="@+id/btSeven"android:background="@drawable/white_select" android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="7" /><Buttonandroid:id="@+id/btEight"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="8" /><Buttonandroid:id="@+id/btNine"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="9" /><Buttonandroid:id="@+id/btJian"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="-" /></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:gravity="center_horizontal"android:orientation="horizontal" ><Buttonandroid:id="@+id/btFour"android:background="@drawable/white_select" android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="5" /><Buttonandroid:id="@+id/btSix"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="6" /><Buttonandroid:id="@+id/btJia"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="+" /></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:gravity="center_horizontal"android:orientation="horizontal" ><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical" ><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/btOne"android:background="@drawable/white_select" android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="1" /><Buttonandroid:id="@+id/btTwo"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="2" /><Buttonandroid:id="@+id/btThree"android:background="@drawable/white_select" android:layout_marginLeft="5dp"android:layout_width="75dp"android:layout_height="60dp"android:textSize="20sp"android:text="3" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:orientation="horizontal" ><Buttonandroid:id="@+id/btZero"android:background="@drawable/white_select" android:layout_width="155dp"android:layout_height="60dp"android:textSize="20sp"android:text="." /></LinearLayout></LinearLayout><Buttonandroid:layout_width="75dp"android:background="@drawable/orange_select"android:layout_height="125dp"android:text="="android:layout_marginLeft="5dp"android:textSize="20sp"android:gravity="center"android:id="@+id/btEqu"></Button></LinearLayout></LinearLayout>2.等号按钮和其余按钮的背景及点击效果不同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android 简易计算器2012-04-05 10:34:43 我来说两句收藏我要投稿安卓版计算器,只实现简单功能,Android 2.2真机测试,布局采用TableLayout,main.xml代码如下:[html] <?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="wrap_content"android:stretchColumns="1"android:textSize="32sp" ><TableRow><EditTextandroid:id="@+id/editText"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_span="4"android:cursorVisible="false"android:editable="false"android:gravity="right|center_vertical"android:lines="1"android:textSize="32sp" /></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:id="@+id/clear"android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="C"android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:id="@+id/add"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="+"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num7"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="7"android:textSize="32sp" /><Buttonandroid:id="@+id/num8"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="8"android:textSize="32sp" /><Buttonandroid:id="@+id/num9"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="9"android:textSize="32sp" /><Buttonandroid:id="@+id/subtract"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="-"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num4"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="4"android:textSize="32sp" /><Buttonandroid:id="@+id/num5"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="5"android:textSize="32sp" /><Buttonandroid:id="@+id/num6"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="6"android:textSize="32sp" /><Buttonandroid:id="@+id/multiply"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="*"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num1"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="1"android:textSize="32sp" /><Buttonandroid:id="@+id/num2"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="2"android:textSize="32sp" /><Buttonandroid:id="@+id/num3"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="3"android:textSize="32sp" /><Buttonandroid:id="@+id/divide"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="/"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num0"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="0"android:textSize="32sp" /><Buttonandroid:id="@+id/point"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="."android:textSize="32sp" /><Buttonandroid:id="@+id/negative"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="-"android:textSize="32sp" /><Buttonandroid:id="@+id/equal"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="="android:textSize="32sp" /></LinearLayout></TableRow></TableLayout><?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="wrap_content"android:stretchColumns="1"android:textSize="32sp" ><TableRow><EditTextandroid:id="@+id/editText"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_span="4"android:cursorVisible="false"android:editable="false"android:gravity="right|center_vertical"android:lines="1"android:textSize="32sp" /></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:id="@+id/clear"android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="C"android:layout_weight="1"android:textSize="32sp" /><Buttonandroid:id="@+id/add"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="+"</LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num7"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="7"android:textSize="32sp" /><Buttonandroid:id="@+id/num8"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="8"android:textSize="32sp" /><Buttonandroid:id="@+id/num9"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="9"android:textSize="32sp" /><Buttonandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="-"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num4"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="4"android:textSize="32sp" /><Buttonandroid:id="@+id/num5"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="5"android:textSize="32sp" /><Buttonandroid:id="@+id/num6"android:layout_width="fill_parent"android:layout_height="wrap_content" android:layout_weight="1"android:text="6"android:textSize="32sp" /><Buttonandroid:id="@+id/multiply"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="*"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num1"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="1"android:textSize="32sp" /><Buttonandroid:id="@+id/num2"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="2"android:textSize="32sp" /><Buttonandroid:id="@+id/num3"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="3"android:textSize="32sp" /><Buttonandroid:id="@+id/divide"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="/"android:textSize="32sp" /></LinearLayout></TableRow><TableRow><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="horizontal"android:textSize="32sp" ><Buttonandroid:id="@+id/num0"android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"android:text="0"android:textSize="32sp" /><Buttonandroid:id="@+id/point"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="."android:textSize="32sp" /><Buttonandroid:id="@+id/negative"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="-"android:textSize="32sp" /><Buttonandroid:id="@+id/equal"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="="android:textSize="32sp" /></LinearLayout></TableRow></TableLayout>下面是CalculatorActivity.java代码,有详细注释:[java] public class CalculatorActivity extends Activity implements OnClickListener{EditText editText;Button num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;Button clear,add,subtract,multiply,divide,point,negative,equal; double firNum=0,secNum=0;//运算符号char c;//小数点控制boolean dot=true;/** Called when the activity is first created. */ @Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.main);init();}private void init(){num0=(Button)findViewById(R.id.num0);num1=(Button)findViewById(R.id.num1);num2=(Button)findViewById(R.id.num2);num3=(Button)findViewById(R.id.num3);num4=(Button)findViewById(R.id.num4);num5=(Button)findViewById(R.id.num5);num6=(Button)findViewById(R.id.num6);num7=(Button)findViewById(R.id.num7);num8=(Button)findViewById(R.id.num8);num9=(Button)findViewById(R.id.num9);clear=(Button)findViewById(R.id.clear);editText=(EditText)findViewById(R.id.editText); add =(Button) findViewById(R.id.add);subtract =(Button) findViewById(R.id.subtract); multiply =(Button) findViewById(R.id.multiply); divide =(Button) findViewById(R.id.divide);point=(Button)findViewById(R.id.point);negative =(Button) findViewById(R.id.negative); equal =(Button) findViewById(R.id.equal);//注册单击事件num0.setOnClickListener(this);num1.setOnClickListener(this);num2.setOnClickListener(this);num3.setOnClickListener(this);num4.setOnClickListener(this);num5.setOnClickListener(this);num6.setOnClickListener(this);num7.setOnClickListener(this);num8.setOnClickListener(this);num9.setOnClickListener(this);add.setOnClickListener(this);clear.setOnClickListener(this);subtract.setOnClickListener(this);multiply.setOnClickListener(this);divide.setOnClickListener(this);point.setOnClickListener(this);negative.setOnClickListener(this);equal.setOnClickListener(this);}//响应单击事件public void onClick(View v) {if(v.equals(num0)){editText.setText(editText.getText()+"0"); }if(v.equals(num1)){editText.setText(editText.getText()+"1"); }if(v.equals(num2)){editText.setText(editText.getText()+"2"); }if(v.equals(num3)){editText.setText(editText.getText()+"3"); }if(v.equals(num4)){editText.setText(editText.getText()+"4");}if(v.equals(num5)){editText.setText(editText.getText()+"5");}if(v.equals(num6)){editText.setText(editText.getText()+"6");}if(v.equals(num7)){editText.setText(editText.getText()+"7");}if(v.equals(num8)){editText.setText(editText.getText()+"8");}if(v.equals(num9)){editText.setText(editText.getText()+"9");}if(v.equals(clear)){editText.setText("");}//如果editText为空if(editText.getText().toString().equalsIgnoreCase("")){Toast.makeText(this, "没有输入数字!",Toast.LENGTH_SHORT).show();}else {if(v.equals(add)){c='+';firNum=Double.parseDouble(editText.getText().toString()) ;editText.setText("");}if(v.equals(subtract)){c='-';firNum=Double.parseDouble(editText.getText().toString()) ;editText.setText("");}if(v.equals(multiply)){c='*';firNum=Double.parseDouble(editText.getText().toString()) ;editText.setText("");}if(v.equals(divide)){c='/';firNum=Double.parseDouble(editText.getText().toString()) ;editText.setText("");}if(v.equals(point)){dot=false;editText.setText(editText.getText()+".");}//等于if(v.equals(equal)){double result=0;secNum=Double.parseDouble(editText.getText().toString()) ;if(c=='+'){result=firNum+secNum;}if(c=='-'){result=firNum-secNum;}if(c=='*'){result=firNum*secNum;}if(c=='/'){if(secNum==0){Toast.makeText(this, "被除数不能为零!", Toast.LENGTH_SHORT).show();editText.setText("");}else{result=firNum/secNum;}}editText.setText(result+"");}}if(v.equals(negative)){editText.setText(editText.getText()+"-");}}//重写onCreateOptionsMenu()方法,创建菜单,@Overridepublic boolean onCreateOptionsMenu(Menu menu) {//创建菜单,并设置图标,使用系统提供的图标,menu.add(Menu.NONE, Menu.FIRST + 1, 1, "关于").setIcon(android.R.drawable.ic_dialog_info);menu.add(Menu.NONE, Menu.FIRST + 2, 2,"XX").setIcon(android.R.drawable.ic_lock_idle_alarm);menu.add(Menu.NONE, Menu.FIRST + 3, 2,"退出").setIcon(android.R.drawable.ic_lock_power_off);;// 返回true即显示菜单return true;}@Override//响应菜单单击事件,public boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId()==Menu.FIRST + 1){//关于AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle("关于");dialog.setMessage("简易计算器!\nBy:柒少狐\nQQ:569629066"); dialog.show();}if(item.getItemId()==Menu.FIRST + 1){Toast.makeText(this, "我那个去,",Toast.LENGTH_SHORT).show();}if(item.getItemId()==Menu.FIRST + 3){//退出this.finish();}return true;}}。