文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

android计算器实现两位数的加减乘除

2022-06-06 14:56

关注

本文实例为大家分享了android计算器实现加减乘除的具体代码,供大家参考,具体内容如下

注:以下计算器只注重实现功能,不考虑其他BUG,只有两位整数的算法运算,适合新手

1、实现思想

将从键盘得到的数值放在一个字符数组中,以运算符号(+-/)为分割点,将两个数值分割开,进行算法运算。*

2、难点

如何判断是否为符号?+ - ×/
记录符号的位置?

3、步骤:

1、得到键盘输入的值
2、将值存放在一个字符数组中
3、遍历数组中的每个数,如果找到算法符号,记录下算法符号的位置。(要点,从0开始)
4、将算法符号前面的数放在一个定义的int型数中
5、同理
6、判断是加减乘除的哪一个方法,然后进行简单的运算。

4、代码

i:布局:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 android:weightSum="1"
 >
 <TextView android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:id="@+id/etResult"
 android:layout_weight="0.05"
 android:textSize="25dp"
 android:paddingTop="10dp"
 android:gravity="bottom"
 android:hint="0.0"
 />
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 android:layout_weight="0.8">
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:weightSum="1">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="C"
 android:textSize="25dp"
 android:background="@color/colorWhite"
 android:id="@+id/btnQingchu"
 android:layout_weight="0.5" />
 <Button
 android:layout_width="235dp"
 android:layout_height="wrap_content"
 android:text="←"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:id="@+id/btnHuishan"
 android:layout_weight="0.5"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn7"
 android:text="7"
 android:textSize="25dp"
 android:layout_weight="0.25"
 />
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn8"
 android:text="8"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn9"
 android:text="9"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnChu"
 android:text="÷"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn4"
 android:text="4"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn5"
 android:text="5"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn6"
 android:text="6"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnCheng"
 android:text="×"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn1"
 android:text="1"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn2"
 android:text="2"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn3"
 android:text="3"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnJian"
 android:text="-"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn0"
 android:text="0"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnDian"
 android:text="."
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnDengyu"
 android:text="="
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnJia"
 android:text="+"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 </LinearLayout>
</LinearLayout>

ii:获取键盘的值,写监听


public void getButton(){
 //获取按钮组件
 btn0= (Button) findViewById(R.id.btn0);
 btn1= (Button) findViewById(R.id.btn1);
 btn2= (Button) findViewById(R.id.btn2);
 btn3= (Button) findViewById(R.id.btn3);
 btn4= (Button) findViewById(R.id.btn4);
 btn5= (Button) findViewById(R.id.btn5);
 btn6= (Button) findViewById(R.id.btn6);
 btn7= (Button) findViewById(R.id.btn7);
 btn8= (Button) findViewById(R.id.btn8);
 btn9= (Button) findViewById(R.id.btn9);
 btnJia= (Button) findViewById(R.id.btnJia);
 btnJian= (Button) findViewById(R.id.btnJian);
 btnCheng= (Button) findViewById(R.id.btnCheng);
 btnChu= (Button) findViewById(R.id.btnChu);
 btnDian= (Button) findViewById(R.id.btnDian);
 btnDengyu= (Button) findViewById(R.id.btnDengyu);
 btnQingchu= (Button) findViewById(R.id.btnQingchu);
 btnHuishan= (Button) findViewById(R.id.btnHuishan);
 etGet = (TextView) findViewById(R.id.etResult);
 //绑定监听
 btn0.setOnClickListener(this);
 btn1.setOnClickListener(this);
 btn2.setOnClickListener(this);
 btn3.setOnClickListener(this);
 btn4.setOnClickListener(this);
 btn5.setOnClickListener(this);
 btn6.setOnClickListener(this);
 btn7.setOnClickListener(this);
 btn8.setOnClickListener(this);
 btn9.setOnClickListener(this);
 btnJia.setOnClickListener(this);
 btnJian.setOnClickListener(this);
 btnCheng.setOnClickListener(this);
 btnChu.setOnClickListener(this);
 btnDian.setOnClickListener(this);
 btnDengyu.setOnClickListener(this);
 btnQingchu.setOnClickListener(this);
 btnHuishan.setOnClickListener(this);
 }

iii:绑定按钮


 @Override
 public void onClick(View v) {
 str = etGet.getText().toString();
 switch (v.getId()){
 //数字按钮
 case R.id.btn0:
 case R.id.btn1:
 case R.id.btn2:
 case R.id.btn3:
 case R.id.btn4:
 case R.id.btn5:
 case R.id.btn6:
 case R.id.btn7:
 case R.id.btn8:
 case R.id.btn9:
 
 etGet.setText(str+((Button)v).getText());
 break;
 //运算按钮
 case R.id.btnJia:
 case R.id.btnJian:
 case R.id.btnCheng:
 case R.id.btnChu:
 case R.id.btnDian:
 
 etGet.setText(str+((Button)v).getText());
 break;
 //清除按钮
 case R.id.btnQingchu:
 
 etGet.setText("");
 break;
 case R.id.btnDengyu:
 getResult();
 break;
 case R.id.btnHuishan:
 str=etGet.getText().toString();
 try {
  etGet.setText(str.substring(0,str.length()-1));
 }
 catch (Exception e){
  etGet.setText("");
 }
 break;
 }
 }

iV:算法功能实现


public void getResult(){
 str = etGet.getText().toString();
 strArray = new String[str.length()]; //将得到的字符串放在一个字符数组里
 //System.out.println("str"+str);
 int n=0;
 for(int i=0; i<strArray.length;i++){
 strArray[i] = str.substring(i, i+1); //遍历数组的每个元素
 //System.out.print(strArray[i]);
 if(strArray[i].equals("+")||strArray[i].equals("-") //满足条件
  ||strArray[i].equals("×")||strArray[i].equals("÷"))
 {
 n= i; //记录符号存在的位置
 }
 }
 int num1 = Integer.parseInt(str.substring(0,n)); //得到前一串数
 String caculate = str.substring(n,n+1); //得到算法符号,加减乘除
 int num2 = Integer.parseInt(str.substring(n+1)); //得到后一串数
 if (caculate.equals("+"))
 {
 Inputresult = num1+num2;
 }
 else if (caculate.equals("-"))
 {
 Inputresult = num1-num2;
 }
 else if (caculate.equals("×"))
 {
 Inputresult = num1*num2;
 }
 else if (caculate.equals("÷"))
 {
 if (num2==0)
 {
 return ;
 }
 Inputresult = num1/num2;
 }
 etGet.setText(num1+caculate+num2+"="+Inputresult);
 }

更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习

关于Android计算器功能的实现,查看专题:Android计算器 进行学习。

您可能感兴趣的文章:Android实现简单加法计算器Android实现加法计算器Android studio实现简单计算器android实现简单计算器功能Android实现简易计算器小程序Android studio设计简易计算器从零开始学android实现计算器功能示例分享(计算器源码)Android开发实现的简单计算器功能【附完整demo源码下载】android计算器简单实现代码Android Studio实现简单计算器APP


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯