脚本之家

电脑版
提示:原网页已由神马搜索转码, 内容由www.jb51.net提供.
您的位置:首页软件编程Android→ Android计算功能

基于Android实现计算器计算功能

  更新时间:2024年06月16日 14:24:52  作者:苏冷.w 
这篇文章主要介绍了基于Android实现计算器计算功能,文章通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

一.新建一个项目

步骤:

1.新建项目

2.选择 

二.用户界面构建 

找到项目的res的下面layout里面的activity.xml文件进行约束布局界面构建。

activity.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">

<GridLayout
android:id="@+id/gridLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="MissingConstraints">

<EditText
android:id="@+id/ed_input"
android:layout_width="match_parent"
android:layout_height="100dp"
android:hint="输入框" />

<EditText
android:id="@+id/ed_output"
android:layout_width="match_parent"
android:layout_height="100dp"
android:hint="输出口" />
</GridLayout>

<GridLayout
android:layout_width="424dp"
android:layout_height="329dp"
android:columnCount="4"
android:rowCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gridLayout"
tools:ignore="MissingConstraints">

<Button
android:id="@+id/buttonc"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_columnSpan="2"
android:backgroundTint="#a6a6a6"
android:text="c" />

<Button
android:id="@+id/buttondel"
android:layout_width="90dp"
android:layout_height="60dp"
android:layout_columnSpan="1"
android:backgroundTint="#a6a6a6"
android:text="DEL" />

<Button
android:id="@+id/buttonchu"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#ff9500"
android:text="/" />

<Button
android:id="@+id/button7"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="7" />

<Button
android:id="@+id/button8"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="8" />

<Button
android:id="@+id/button9"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="9" />

<Button
android:id="@+id/buttoncheng"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#ff9500"
android:text="*" />

<Button
android:id="@+id/button4"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="4" />

<Button
android:id="@+id/button5"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="5" />

<Button
android:id="@+id/button6"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="6" />

<Button
android:id="@+id/buttonjian"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#ff9500"
android:text="-" />

<Button
android:id="@+id/button1"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="1" />

<Button
android:id="@+id/button2"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="2" />

<Button
android:id="@+id/button3"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="3" />

<Button
android:id="@+id/buttonjia"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#ff9500"
android:text="+" />

<Button
android:id="@+id/buttonyuliu"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="预留" />

<Button
android:id="@+id/button0"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="0" />

<Button
android:id="@+id/buttondian"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#333333"
android:text="." />

<Button
android:id="@+id/buttondeng"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundTint="#ff9500"
android:text="=" />


</GridLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

三.设置实现计算功能的关键 

找到Java里面的MainActiviy.java写入实现代码。

MainActiviy.java代码如下:

package com.example.myapplication2;

import androidx.appcompat.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{

private Button mbutton1,mbutton2,mbutton3,mbutton4,mbutton5,mbutton6,mbutton7,mbutton8,mbutton9,mbutton0,
mbuttonc,mbuttondel,mbuttonyuliu,mbuttonjia,mbuttonjian,
mbuttoncheng,mbuttonchu,mbuttondian,mbuttondeng;
private EditText edinput,edoutput;
private boolean deng_flag=false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数字0-9
mbutton1=findViewById(R.id.button1);
mbutton2=findViewById(R.id.button2);
mbutton3=findViewById(R.id.button3);
mbutton4=findViewById(R.id.button4);
mbutton5=findViewById(R.id.button5);
mbutton6=findViewById(R.id.button6);
mbutton7=findViewById(R.id.button7);
mbutton8=findViewById(R.id.button8);
mbutton9=findViewById(R.id.button9);
mbutton0=findViewById(R.id.button0);
//c、del、预留
mbuttonc=findViewById(R.id.buttonc);
mbuttondel=findViewById(R.id.buttondel);
mbuttonyuliu=findViewById(R.id.buttonyuliu);
//加减乘除、点、等号
mbuttonjia=findViewById(R.id.buttonjia);
mbuttonjian=findViewById(R.id.buttonjian);
mbuttoncheng=findViewById(R.id.buttoncheng);
mbuttonchu=findViewById(R.id.buttonchu);
mbuttondeng=findViewById(R.id.buttondeng);
mbuttondian=findViewById(R.id.buttondian);
//输入输出
edinput=findViewById(R.id.ed_input);
edoutput=findViewById(R.id.ed_output);

//设置按钮监听
//0-9
mbutton0.setOnClickListener(this);
mbutton1.setOnClickListener(this);
mbutton2.setOnClickListener(this);
mbutton3.setOnClickListener(this);
mbutton4.setOnClickListener(this);
mbutton5.setOnClickListener(this);
mbutton6.setOnClickListener(this);
mbutton7.setOnClickListener(this);
mbutton8.setOnClickListener(this);
mbutton9.setOnClickListener(this);
//c、del、预留
mbuttonc.setOnClickListener(this);
mbuttondel.setOnClickListener(this);
mbuttonyuliu.setOnClickListener(this);
//加减乘除、点、等号
mbuttonjia.setOnClickListener(this);
mbuttonjian.setOnClickListener(this);
mbuttoncheng.setOnClickListener(this);
mbuttonchu.setOnClickListener(this);
mbuttondeng.setOnClickListener(this);
mbuttondian.setOnClickListener(this);
}

@Override
public void onClick(View view)
{
String input = edinput.getText().toString();
String output = edoutput.getText().toString();
switch (view.getId()){
//0-9
case R.id.button0:
case R.id.button1:
case R.id.button2:
case R.id.button3:
case R.id.button4:
case R.id.button5:
case R.id.button6:
case R.id.button7:
case R.id.button8:
case R.id.button9:
case R.id.buttondian:
if(deng_flag){
deng_flag=false;
edinput.setText(null);
edinput.setText(((Button) view).getText());
}else {
edinput.setText(input+((Button) view).getText());
}
edinput.setText(input+((Button) view).getText());
break;
//c
case R.id.buttonc:
edinput.setText(null);
edoutput.setText(null);
break;
//del
case R.id.buttondel:
if (deng_flag){
deng_flag=false;
edinput.setText("");
}else if(input !=null&&!input.equals("")){
edinput.setText(input.substring(0,input.length()-1));
}
break;
//预留
case R.id.buttonyuliu:
break;
//加减乘除
case R.id.buttonjia:
case R.id.buttonjian:
case R.id.buttoncheng:
case R.id.buttonchu:
edinput.setText(input+" "+((Button) view).getText()+" ");
break;
//等号
case R.id.buttondeng:
// edinput.setText(input+((Button) view).getText());
// break;
getResult();

}

}

private void getResult() {
try{
String input = edinput.getText().toString();
int iResult=0;
double dResult=0;
String cw="错误";
String s1,s2,op;//数字,数字,操作符 s1"4" op"*" s2"5"
s1=input.substring(0,input.indexOf(" "));
op=input.substring(input.indexOf(" ")+1,input.indexOf(" ")+2);
s2=input.substring(input.indexOf(" ")+3);

double d1,d2;
d1=Double.parseDouble(s1);
d2=Double.parseDouble(s2);

if(op.equals("+")){//加
dResult=d1+d2;
// edoutput.setText(dResult+"");
}else if(op.equals("-")){//减
dResult=d1-d2;
} else if (op.equals("*")){//乘
dResult=d1*d2;
} else if (op.equals("/")) {//除
if(d2==0){
edoutput.setText(cw+"");
} else if (d1==0) {
dResult=0;
} else {
dResult=d1/d2;
}
}
if(!input.equals(".")&&!input.equals("/")){
iResult=(int)dResult;
edoutput.setText(iResult+"");
}
edoutput.setText(dResult+"");

}catch (Exception e){
System.out.println(e);
}
}
}

运行结果如下:

输入计算值,得出结果

以上就是基于Android实现计算机计算功能的详细内容,更多关于Android计算功能的资料请关注脚本之家其它相关文章!

相关文章

    • 这篇文章主要为大家详细介绍了Android实现拍照及图片显示效果 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-03-03
    • 今天用ViewPager这个类实现了同样的左右拖动效果,这样代码更少,但是效果是一样的,ViewPager是实现左右两个屏幕平滑地切换的一个类,它是Google提供的,有需要的朋友可以了解下
      2013-01-01
    • 这篇文章主要介绍了Android编程绘图操作之弧形绘制方法,结合实例形式分析了Android图形绘制的相关组件调用、属性设置与功能实现技巧,需要的朋友可以参考下
      2017-08-08
    • 这篇文章主要介绍了Android中使用Camera类编写手机拍照App的实例教程,整理了Camera调用硬件进行拍照的一些常用方法,需要的朋友可以参考下
      2016-04-04
    • 这篇文章主要为大家详细介绍了Android仿QQ列表滑动删除操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2016-08-08
    • 这篇文章主要为大家详细介绍了Android实现圆圈倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2022-08-08
    • 本文主要介绍Android 逆向学习,这里整理逆向学习的思路及学习要点,并附示例代码,帮助大家学习理解,有需要的小伙伴可以参考下
      2016-09-09
    • 这篇文章主要给大家介绍了在Android上使用grpc的方法教程,文中通过示例代码给大家详细介绍了在android上使用grpc的方法以及可能遇到的种种问题的解决方法,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧
      2023-02-02
    • 简单的自定义dialog,该dialog具备以下功能:有一个窗口可以显示文章、根据需求显示,有需要的朋友可以参考下
      2012-12-12
    • 这篇文章主要帮助大家完美解决了Android三星手机从图库选择照片旋转问题,很实用的解决小案例,感兴趣的小伙伴们可以参考一下
      2016-04-04

    最新评论