版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/postedit/82623704

一、Android studio制作计算器源代码

这是我学Android 以来第一次制作计算器,Android学起来说难也不难,说简单也不简单

制作简易的计算器需要掌握基本布局,监听器,以及使用哪些主题等

废话不多说,直接上代码!

以下是activity_main.xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><EditTextandroid:id="@+id/et_input"android:layout_width="match_parent"android:layout_height="60dp"android:paddingBottom="5dp"android:paddingRight="5dp"android:textSize="50sp" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_clr"android:layout_width="80dp"android:layout_height="80dp"android:text="C"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_del"android:layout_width="80dp"android:layout_height="80dp"android:text="D"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp" /><Buttonandroid:id="@+id/btn_div"android:layout_width="80dp"android:layout_height="80dp"android:text="÷"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp" /><Buttonandroid:id="@+id/btn_mul"android:layout_width="80dp"android:layout_height="80dp"android:text="×"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_7"android:layout_width="80dp"android:layout_height="80dp"android:text="7"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_8"android:layout_width="80dp"android:layout_height="80dp"android:text="8"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_9"android:layout_width="80dp"android:layout_height="80dp"android:text="9"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_sub"android:layout_width="80dp"android:layout_height="80dp"android:text="-"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_4"android:layout_width="80dp"android:layout_height="80dp"android:text="4"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_5"android:layout_width="80dp"android:layout_height="80dp"android:text="5"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_6"android:layout_width="80dp"android:layout_height="80dp"android:text="6"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:id="@+id/btn_add"android:layout_width="80dp"android:layout_height="80dp"android:text="+"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:gravity="center_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:layout_width="80dp"android:layout_height="80dp"android:id="@+id/btn_1"android:text="1"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:layout_width="80dp"android:layout_height="80dp"android:id="@+id/btn_2"android:text="2"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:layout_width="80dp"android:layout_height="80dp"android:id="@+id/btn_3"android:text="3"android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><Buttonandroid:layout_width="170dp"android:layout_height="80dp"android:id="@+id/btn_0"android:text="0"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid:layout_width="80dp"android:layout_height="80dp"android:id="@+id/btn_pt"android:text="."android:textSize="30sp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"/></LinearLayout></LinearLayout><Buttonandroid:id="@+id/btn_eq"android:layout_width="80dp"android:layout_height="170dp"android:layout_marginLeft="10dp"android:text="="android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp" /></LinearLayout></LinearLayout>

完成以上代码,你就会看到这样一个效果图

效果如下

如果你觉得这个计算器有点不好看,可以在按钮里面给元素添加颜色

完成简易计算器布局之后就给按钮添加点击事件以及按钮效果

以下是MainActivity.java代码

package com.example.a0909_homework_04;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;public class MainActivity extends AppCompatActivity implements View.OnClickListener {//创建Button对象   也就是activity_main.xml里所设置的IDButton btn_0,btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_pt;Button btn_mul,btn_div,btn_add,btn_sub;Button btn_clr,btn_del,btn_eq;EditText et_input;boolean clr_flag;    //判断et编辑文本框中是否清空@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//实例化对象setContentView(R.layout.activity_main);btn_0= (Button) findViewById(R.id.btn_0);btn_1= (Button) findViewById(R.id.btn_1);btn_2= (Button) findViewById(R.id.btn_2);btn_3= (Button) findViewById(R.id.btn_3);btn_4= (Button) findViewById(R.id.btn_4);btn_5= (Button) findViewById(R.id.btn_5);btn_6= (Button) findViewById(R.id.btn_6);btn_7= (Button) findViewById(R.id.btn_7);btn_8= (Button) findViewById(R.id.btn_8);btn_9= (Button) findViewById(R.id.btn_9);btn_pt= (Button) findViewById(R.id.btn_pt);btn_add= (Button) findViewById(R.id.btn_add);btn_sub= (Button) findViewById(R.id.btn_sub);btn_mul= (Button) findViewById(R.id.btn_mul);btn_div= (Button) findViewById(R.id.btn_div);btn_clr= (Button) findViewById(R.id.btn_clr);btn_del= (Button) findViewById(R.id.btn_del);btn_eq= (Button) findViewById(R.id.btn_eq);et_input= (EditText) findViewById(R.id.et_input);//给按钮设置的点击事件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_pt.setOnClickListener(this);btn_add.setOnClickListener(this);btn_sub.setOnClickListener(this);btn_mul.setOnClickListener(this);btn_div.setOnClickListener(this);btn_clr.setOnClickListener(this);btn_del.setOnClickListener(this);btn_eq.setOnClickListener(this);}@Overridepublic void onClick(View v) {String str=et_input.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_pt:if(clr_flag){clr_flag=false;str="";et_input.setText("");}et_input.setText(str+((Button)v).getText());break;case R.id.btn_add:case R.id.btn_sub:case R.id.btn_mul:case R.id.btn_div:if(clr_flag){clr_flag=false;str="";et_input.setText("");}if(str.contains("+")||str.contains("-")||str.contains("×")||str.contains("÷")) {str=str.substring(0,str.indexOf(" "));}et_input.setText(str+" "+((Button)v).getText()+" ");break;case R.id.btn_clr:if(clr_flag)clr_flag=false;str="";et_input.setText("");break;case R.id.btn_del: //判断是否为空,然后在进行删除if(clr_flag){clr_flag=false;str="";et_input.setText("");}else if(str!=null&&!str.equals("")){et_input.setText(str.substring(0,str.length()-1));}break;case R.id.btn_eq: //单独运算最后结果getResult();//调用下面的方法break;}}private void getResult() {String exp=et_input.getText().toString();if(exp==null||exp.equals("")) return ;//因为没有运算符所以不用运算if(!exp.contains(" ")){return ;}if(clr_flag){clr_flag=false;return;}clr_flag=true;//截取运算符前面的字符串String s1=exp.substring(0,exp.indexOf(" "));//截取的运算符String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);//截取运算符后面的字符串String s2=exp.substring(exp.indexOf(" ")+3);double cnt=0;if(!s1.equals("")&&!s2.equals("")){double d1=Double.parseDouble(s1);double d2=Double.parseDouble(s2);if(op.equals("+")){cnt=d1+d2;}if(op.equals("-")){cnt=d1-d2;}if(op.equals("×")){cnt=d1*d2;}if(op.equals("÷")){if(d2==0) cnt=0;else cnt=d1/d2;}if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")) {int res = (int) cnt;et_input.setText(res+"");}else {et_input.setText(cnt+"");}}//如果s1是空    s2不是空  就执行下一步else if(!s1.equals("")&&s2.equals("")){double d1=Double.parseDouble(s1);if(op.equals("+")){cnt=d1;}if(op.equals("-")){cnt=d1;}if(op.equals("×")){cnt=0;}if(op.equals("÷")){cnt=0;}if(!s1.contains(".")) {int res = (int) cnt;et_input.setText(res+"");}else {et_input.setText(cnt+"");}}//如果s1是空    s2不是空  就执行下一步else if(s1.equals("")&&!s2.equals("")){double d2=Double.parseDouble(s2);if(op.equals("+")){cnt=d2;}if(op.equals("-")){cnt=0-d2;}if(op.equals("×")){cnt=0;}if(op.equals("÷")){cnt=0;}if(!s2.contains(".")) {int res = (int) cnt;et_input.setText(res+"");}else {et_input.setText(cnt+"");}}else {et_input.setText("");}}
}

以上代码写好,简易的计算器就完成了!!!

Android studio制作计算器源代码相关推荐

  1. android页面布局计算机,Android Studio制作简单计算器App

    Android Studio制作简单计算器App 计算机界面如图: 程序设计步骤: (1)在布局文件中声明编辑文件框EditText,按钮Button等组件. (2)在MainActivity中获取组 ...

  2. 物联网控制APP入门专题(四)---使用android studio制作一个控制页面的APP框架

    摘要:上篇文章讲了如何用阿里云IoT Studio快速制作一个网页版的手机端,以及通过第三方平台将这个网页打包成一个APK文件,使它可以安装到手机实现APP的功能.但是使用第三方平台做的APP是需要收 ...

  3. Android Studio制作.9图片,看这一篇就够了

    一..9.png图片概念 这是安卓开发里面的一种特殊的图片 这种格式的图片在android 环境下具有自适应调节大小的能力,不会失真 (1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更 ...

  4. Android Studio 制作微信界面 上

    工程功能介绍 打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面.在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面.   微信的界面由4个fragm ...

  5. 蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)

    前言:蓝牙聊天App设计全部有三篇文章(一.UI界面设计,二.蓝牙搜索配对连接实现,三.蓝牙连接聊天),这篇文章是一.UI界面设计 课程1:Android Studio小白安装教程,以及第一个Andr ...

  6. 蓝牙聊天App设计3:Android Studio制作蓝牙聊天通讯软件(完结,蓝牙连接聊天,结合生活情景进行蓝牙通信的通俗讲解,以及代码功能实现,内容详细,讲解通俗易懂)

    前言:蓝牙聊天App设计全部有三篇文章(一.UI界面设计,二.蓝牙搜索配对连接实现,三.蓝牙连接聊天),这篇文章是:三.蓝牙连接聊天. 课程1:Android Studio小白安装教程,以及第一个An ...

  7. Android Studio制作搜索栏

    Android Studio制作搜索栏 前言 一.何为自定义控件? 二.制作步骤 1.引入布局 2.布局解析 测试 前言 一.何为自定义控件? 系统自带的控件都是直接或间接继承自View的,View是 ...

  8. 蓝牙App设计2:使用Android Studio制作一个蓝牙软件(包含:代码实现等)

    前言:蓝牙聊天App设计全部有三篇文章(一.UI界面设计,二.蓝牙搜索配对连接实现,三.蓝牙连接聊天),这篇文章是:二.蓝牙搜索配对连接实现. 课程1:Android Studio小白安装教程,以及第 ...

  9. Android Studio 制作微信界面 下

    主界面 上一篇文章的链接: Android Studio 制作微信界面 上_nazonomaster的博客-CSDN博客https://blog.csdn.net/nazonomaster/artic ...

最新文章

  1. 巧用watch命令执行循环操作,来解放我们的双手
  2. ​亚马逊出品:非均匀扰动的对抗鲁棒性理论分析
  3. Ogre wiki 中级教程1 动画,点之间行走及四元数的基本应用
  4. PB9.0实现下拉数据列表的实现
  5. 爬虫10-股票信息定向爬取
  6. 如何在Mac上添加密码提示?
  7. php 清除opcache缓存的方法
  8. Matlab学习:读取excel中数据
  9. Java接口与实现类的转换
  10. mysql页面浏览记录表设计
  11. Error:Execution failed for task :app:mergeDebugResourcesSome file crunching failed的解决方法
  12. FASTDB中文手册
  13. facebook登陆,如何邀请玩家成为测试人员
  14. viper4android fx原理,ViPer4android. FX顶级音效!
  15. 矩阵、方程自由度的理解
  16. 同城小程序 30.0 完整版源码(含全部插件)
  17. STM32输出PWM波形以及实现LED呼吸灯
  18. MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
  19. 将TTF格式文字转换成eot格式
  20. python selenium移动端网页下拉刷新

热门文章

  1. 泰坦尼克号预测python_kaggle:泰坦尼克号获救预测_Titanic_EDA##
  2. CSS中添加背景图+盒子边框样式
  3. JTAG-SWD转接
  4. 工业互联网与高端装备健康管理解决方案
  5. 利用ELK分析Nginx日志生产实战(高清多图)
  6. freebsd MySQL 提权_Intel Sysret (CVE-2012-0217)内核提权漏洞
  7. 【Android高级】查看手机及应用内存状况的方法
  8. 极路由 安装php,极路由1S刷潘多拉安装优酷路由宝插件
  9. 联想笔记本桌面计算机不见了,桌面上的图标不见了怎么办,教您桌面上的图标不见了怎么办...
  10. zabbix php微信报警,Zabbix实现微信报警