IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android studio实现计算器 -> 正文阅读

[移动开发]Android studio实现计算器

Android studio实现计算器

calculate.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="256dp"
        android:orientation="horizontal">
        <EditText
            android:id="@+id/result"
            android:layout_width="wrap_content"
            android:layout_height="310dp"
            android:hint="请输入计算式"
            android:textSize="30dp"></EditText>

    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <TableRow
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/clear"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="C"
             >
            </Button>
            <Button
                android:id="@+id/del"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="del"
              >

            </Button>

            <Button
                android:id="@+id/add"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="+"
                >
            </Button>
            <Button
                android:id="@+id/sub"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="-"
              >

            </Button>
        </TableRow>
        <TableRow
            android:orientation="horizontal"

            >
            <Button
                android:id="@+id/btn_7"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="7"
               >

            </Button>
            <Button
                android:id="@+id/btn_8"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="8"
             >

            </Button>

            <Button
                android:id="@+id/btn_9"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="9"
               >
            </Button>
            <Button
                android:id="@+id/mul"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="X"
               >

            </Button>
        </TableRow>
        <TableRow
            android:orientation="horizontal"

            >
            <Button
                android:id="@+id/btn_4"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="4"
               >

            </Button>
            <Button
                android:id="@+id/btn_5"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="5"
              >

            </Button>

            <Button
                android:id="@+id/btn_6"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="6"
                >
            </Button>
            <Button
                android:id="@+id/div"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="/"
               >

            </Button>
        </TableRow>
        <TableRow
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_1"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="1"
                >

            </Button>
            <Button
                android:id="@+id/btn_2"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="2"
               >

            </Button>

            <Button
                android:id="@+id/btn_3"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="3"
                >
            </Button>
            <Button
                android:id="@+id/btn_point"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="."
               >

            </Button>
        </TableRow>
        <TableRow
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_0"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="0"
              >
            </Button>
            <Button
                android:id="@+id/btn_eq"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:text="="
               >

            </Button>
        </TableRow>
    </TableLayout>
</LinearLayout>

Mainactivity.java

package com.example.calaulate;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
        Button btn1; // 数字1
        Button btn2; // 数字2
        Button btn3; // 数字3
        Button btn4; // 数字4
        Button btn5; // 数字5
        Button btn6; // 数字6
        Button btn7; // 数字7
        Button btn8; // 数字8
        Button btn9; // 数字9
        Button btn0; // 数字0
        Button add; // +号
        Button sub; // -号
        Button mul; // *号
        Button div; // 除号
        Button dot; // 小数点
        Button equ; // =号
        Button clear; //清除
        EditText result; // 显示文本

        double num1 = 0, num2 = 0; //计算的数字
        double Result = 0;//计算结果
        int op = 0;//判断操作符
        String opd = " ";//显示操作符

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.calculate);

            // 获取页面上的控件
            btn1 = findViewById(R.id.btn_1);
            btn2 = findViewById(R.id.btn_2);
            btn3 = findViewById(R.id.btn_3);
            btn4 = findViewById(R.id.btn_4);
            btn5 = findViewById(R.id.btn_5);
            btn6 = findViewById(R.id.btn_6);
            btn7 = findViewById(R.id.btn_7);
            btn8 = findViewById(R.id.btn_8);
            btn9 = findViewById(R.id.btn_9);
            btn0 = findViewById(R.id.btn_0);
            add = findViewById(R.id.add);
            sub = findViewById(R.id.sub);
            mul = findViewById(R.id.mul);
            div = findViewById(R.id.div);
            equ = findViewById(R.id.btn_eq);
            dot = findViewById(R.id.btn_point);
            clear = findViewById(R.id.clear);
            result = findViewById(R.id.result);

            // 按钮的单击事件
            btn1.setOnClickListener(new Click());
            btn2.setOnClickListener(new Click());
            btn3.setOnClickListener(new Click());
            btn4.setOnClickListener(new Click());
            btn5.setOnClickListener(new Click());
            btn6.setOnClickListener(new Click());
            btn7.setOnClickListener(new Click());
            btn8.setOnClickListener(new Click());
            btn9.setOnClickListener(new Click());
            btn0.setOnClickListener(new Click());
            add.setOnClickListener(new Click());
            sub.setOnClickListener(new Click());
            mul.setOnClickListener(new Click());
            div.setOnClickListener(new Click());
            equ.setOnClickListener(new Click());
            dot.setOnClickListener(new Click());
            clear.setOnClickListener(new Click());
            result.setOnClickListener(new Click());
        }

        // 设置按钮点击后的监听
        class Click implements View.OnClickListener {
            public void onClick(View v) {
                switch (v.getId()) {                //switch循环获取点击按钮后的值
                    case R.id.btn_0:                //获取,0-9、小数点,并在编辑框显示
                        String myString = result.getText().toString();
                        myString += "0";
                        result.setText(myString);
                        break;
                    case R.id.btn_1:
                        String myString1 = result.getText().toString();
                        myString1 += "1";
                        result.setText(myString1);
                        break;
                    case R.id.btn_2:
                        String myString2 = result.getText().toString();
                        myString2 += "2";
                        result.setText(myString2);
                        break;
                    case R.id.btn_3:
                        String myString3 = result.getText().toString();
                        myString3 += "3";
                        result.setText(myString3);
                        break;
                    case R.id.btn_4:
                        String myString4 = result.getText().toString();
                        myString4 += "4";
                        result.setText(myString4);
                        break;
                    case R.id.btn_5:
                        String myString5 = result.getText().toString();
                        myString5 += "5";
                        result.setText(myString5);
                        break;
                    case R.id.btn_6:
                        String myString6 = result.getText().toString();
                        myString6 += "6";
                        result.setText(myString6);
                        break;
                    case R.id.btn_7:
                        String myString7 = result.getText().toString();
                        myString7 += "7";
                        result.setText(myString7);
                        break;
                    case R.id.btn_8:
                        String myString8 = result.getText().toString();
                        myString8 += "8";
                        result.setText(myString8);
                        break;
                    case R.id.btn_9:
                        String myString9 = result.getText().toString();
                        myString9 += "9";
                        result.setText(myString9);
                        break;
                    case R.id.btn_point:
                        String myStringDot = result.getText().toString();
                        myStringDot += ".";
                        result.setText(myStringDot);
                        break;
                    case R.id.add:             //判断,使用加减乘除的操作符
                        String myStringAdd = result.getText().toString();
                        if (myStringAdd.equals(null)) {
                            return;
                        }
                        num1 = Double.valueOf(myStringAdd);
                        result.setText(null);
                        op = 1;
                        opd = "+";
                        break;
                    case R.id.sub:
                        String myStringSub = result.getText().toString();
                        if (myStringSub.equals(null)) {
                            return;
                        }
                        num1 = Double.valueOf(myStringSub);
                        result.setText(null);
                        op = 2;
                        opd = "-";
                        break;
                    case R.id.mul:
                        String myStringMul = result.getText().toString();
                        if (myStringMul.equals(null)) {
                            return;
                        }
                        num1 = Double.valueOf(myStringMul);
                        result.setText(null);
                        op = 3;
                        opd = "×";
                        break;
                    case R.id.div:
                        String myStringDiv = result.getText().toString();
                        if (myStringDiv.equals(null)) {
                            return;
                        }
                        num1 = Double.valueOf(myStringDiv);
                        result.setText(null);
                        op = 4;
                        opd = "÷";
                        break;
                    case R.id.clear:                 //清除,将编辑框文本显示为空
                        result.setText(null);
                        break;
                    case R.id.btn_eq:                   //计算,以操作符为判断,选择所需的运算,并将结果输出
                        String myStringEqu = result.getText().toString();
                        if (myStringEqu.equals(null)) {
                            return;
                        }
                        num2 = Double.valueOf(myStringEqu);
                        result.setText(null);
                        switch (op) {
                            case 0:
                                Result = num2;
                                break;
                            case 1:
                                Result = num1 + num2;
                                break;
                            case 2:
                                Result = num1 - num2;
                                break;
                            case 3:
                                Result = num1 * num2;
                                break;
                            case 4:
                                if (num2 == 0)                //除法中分子与分母之分
                                    Result = 0;
                                else
                                    Result = num1 / num2;
                                break;
                            default:
                                Result = 0;
                                break;
                        }
                        result.setText(Double.toString(num1) + opd + Double.toString(num2) + "=" + Double.toString(Result));    //将结果完整输出
                        break;
                    default:
                        break;
                }
            }
        }
    }



  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:05:55  更:2021-09-19 08:07:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:46:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码