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

苏冷.w 2024-06-16 17:55:22编程技术
54

一.新建一个项目

步骤:

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 计算器
THE END
站长工具箱
专注软件和工具分享

相关推荐

HTML+JS实现年龄计算器示例代码分享
年龄计算器是一个非常基础且实用的功能,它可以帮助用户了解自己的年龄以及在不同时间点的年龄。通过HTML和JavaScript,我们可以轻松地创建这样一个计算器,让用户输入生日日...
2024-06-14 编程技术
70

使用Java编写一个简单的年龄计算器(附示例代码)
Java作为一种广泛使用的编程语言,提供了丰富的日期和时间处理功能,使我们能够轻松地实现根据出生日期来计算年龄。本文将向您展示如何使用Java编写一个简单的年龄计算器,包...
2024-06-14 编程技术
58

flutter在vscode中使用Android模拟器图文详解
Flutter作为跨平台的UI框架,越来越受到开发者的青睐。它允许开发者使用一套代码库同时开发Android和iOS应用。而在开发过程中,使用Android模拟器进行应用的测试和调试是必不...
2024-06-06 编程技术
85

2024五款主流安卓模拟器电脑手游模拟器推荐
安卓模拟器电脑版哪个好?电脑手游模拟器哪个好?不清楚的用户可看看小编为大家准备的“福利”五款主流的安卓模拟器电脑版推荐,这五款安卓模拟器不论是从性能方面,还是从流...
2024-05-16 电脑知识
119

苹果计划为iPad推出计算器应用 iPadOS 18或加入
苹果官方已正式公告,一场名为“放飞吧”的特别活动定于5月7日盛大举行,而这场活动的焦点无疑将是备受瞩目的2024款iPadPro及iPadAir等新品。据可靠消息透露,苹果还将揭晓iP...
2024-04-24 新闻资讯
29

八款必备工具助力Android开发者提升效率
本文为大家分享八款Android开发工具,在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了。
2024-01-11 编程技术
21