Android Studio 编写简易计算器App (Java语言版)

本文展示了如何使用Android Studio和Java语言创建一个简易的计算器应用。布局文件包括了计算器的UI设计,包括数字按钮、运算符按钮以及结果显示。Java文件中实现了按钮点击事件处理,包括加减乘除、求余、求倒数、平方和开平方等运算。通过点击事件,实现了输入数字、清除、运算及结果显示的功能。
摘要由CSDN通过智能技术生成

Android Studio 编写简易计算器App (Java语言版)

效果演示

在这里插入图片描述

布局文件

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:orientation="vertical">
        <TextView
            android:id="@+id/mini"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="40dp"
            android:text=""
            android:textDirection="rtl"/>
        <TextView
            android:id="@+id/max"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="100dp"
            android:text=""
            android:textDirection="rtl"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="%"
                android:textSize="30dp"
                android:onClick="surplus"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="CE"
                android:textSize="30dp"
                android:onClick="clearce"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="C"
                android:textSize="30dp"
                android:onClick="clearc"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text=""
                android:textSize="30dp"
                android:onClick="backsprce"/>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="1/x"
                android:textSize="30dp"
                android:onClick="reciprocal"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text=""
                android:textSize="30dp"
                android:onClick="square"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="²√x"
                android:textSize="30dp"
                android:onClick="squareroot"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="÷"
                android:textSize="60dp"
                android:onClick="division"/>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="7"
                android:textSize="30dp"
                android:onClick="number_7"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="8"
                android:textSize="30dp"
                android:onClick="number_8"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="9"
                android:textSize="30dp"
                android:onClick="number_9"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="×"
                android:textSize="30dp"
                android:onClick="multiplication"/>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="4"
                android:textSize="30dp"
                android:onClick="number_4"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="5"
                android:textSize="30dp"
                android:onClick="number_5"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="6"
                android:textSize="30dp"
                android:onClick="number_6"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text=""
                android:textSize="30dp"
                android:onClick="subtraction"/>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="1"
                android:textSize="30dp"
                android:onClick="number_1"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="2"
                android:textSize="30dp"
                android:onClick="number_2"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="3"
                android:textSize="30dp"
                android:onClick="number_3"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text=""
                android:textSize="30dp"
                android:onClick="addition"/>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="±"
                android:textSize="30dp"
                android:onClick="change"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="0"
                android:textSize="30dp"
                android:onClick="number_0"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="."
                android:textSize="30dp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text=""
                android:textSize="30dp"
                android:onClick="equal"/>
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

Java文件

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;

public class MainActivity extends Activity {

    private TextView tv1;
    private TextView tv2;
    private StringBuilder viewStr;
    private int index = 0;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_calc);
        tv1 = (TextView) findViewById(R.id.mini);
        tv2 = (TextView) findViewById(R.id.max);
        viewStr = new StringBuilder();
        index = 0;
    }

    //加减乘除、求余简单运算方法
    public String calc(StringBuilder strB) {
        String allS = strB.toString();
        String[] asmd = {"+","-","×","÷","%"};
        int x = 0; int y = 0;
        String result = null;
        for (int i = 0; i < 5; i ++) {
            int inde = strB.indexOf(asmd[i]);
            if (inde > 0) {
                String a = allS.split(asmd[i])[0];
                String b = allS.split(asmd[i])[1];
                if (i == 0) {result = String.valueOf(Integer.parseInt(a) + Integer.parseInt(b));}
                if (i == 1) {result = String.valueOf(Integer.parseInt(a) - Integer.parseInt(b));}
                if (i == 2) {result = String.valueOf(Integer.parseInt(a) * Integer.parseInt(b));}
                if (i == 3) {
                    if (Integer.parseInt(b) == 0) {
                        Toast.makeText(this,"0不能为除数",Toast.LENGTH_SHORT).show();
                        result = String.valueOf(Integer.parseInt(a));
                    }else {
                        result = String.valueOf(Integer.parseInt(a) / Integer.parseInt(b));
                    }
                }
                if (i == 4) {result = String.valueOf(Integer.parseInt(a) % Integer.parseInt(b));}
            }
        }
        return result;
    }

    //数字按钮事件
    public void number_0(View view) { viewStr.append("0"); index ++ ; tv2.setText(viewStr); }
    public void number_1(View view) { viewStr.append("1"); index ++ ; tv2.setText(viewStr); }
    public void number_2(View view) { viewStr.append("2"); index ++ ; tv2.setText(viewStr); }
    public void number_3(View view) { viewStr.append("3"); index ++ ; tv2.setText(viewStr); }
    public void number_4(View view) { viewStr.append("4"); index ++ ; tv2.setText(viewStr); }
    public void number_5(View view) { viewStr.append("5"); index ++ ; tv2.setText(viewStr); }
    public void number_6(View view) { viewStr.append("6"); index ++ ; tv2.setText(viewStr); }
    public void number_7(View view) { viewStr.append("7"); index ++ ; tv2.setText(viewStr); }
    public void number_8(View view) { viewStr.append("8"); index ++ ; tv2.setText(viewStr); }
    public void number_9(View view) { viewStr.append("9"); index ++ ; tv2.setText(viewStr); }

    //回退按钮事件
    public void backsprce(View view) {
        if (viewStr.length() == 0) return;
        index = viewStr.length();
        viewStr.deleteCharAt(--index); tv2.setText(viewStr);
    }

    //符号改变按钮事件
    public void change(View view) {
        String allS = viewStr.toString();
        String[] asmd = {"+","-","×","÷","%"};
        int inde = 0;
        String a = null;    //保存字符串中运算符部分
        String b = null;    //保存字符串中数字部分
        for (int i = 0; i < 5; i ++) {
            inde = viewStr.indexOf(asmd[i]);
            if (inde != -1) {
                a = asmd[i];
                break;
            }
        }
        //A 字符形 改变 A 正负值
        if (inde == -1) {
            clearc(view);
            int c = - Integer.parseInt(allS);
            viewStr.append(String.valueOf(c));
            index = String.valueOf(c).length();
            tv2.setText(viewStr);
        }
        //A + 字符串形 改变 A 正负值 暂时无法实现,待后续优化
        if (inde == index - 1) {
            return;
//            clearc(view);
//            int c = - Integer.valueOf(allS.split(a)[0]);
//            viewStr.append(String.valueOf(c));
//            index = String.valueOf(c).length();
//            tv2.setText(viewStr);
        }
        //A + B 字符串形 改变 B 正负值
        if (inde >= 0 && inde < index) {
            clearc(view);
            b = allS.split(a)[0];
            int c = - Integer.parseInt(allS.split(a)[1]);
            viewStr.append(b).append(a).append(String.valueOf(c));
            index = String.valueOf(c).length();
            tv2.setText(viewStr);
        }
    }

    //清空按钮事件
    public void clearc(View view) {
        StringBuilder temp = new StringBuilder();
        viewStr = temp.append("");
        tv2.setText(viewStr);
        index = 0;
    }
    public void clearce(View view) {
        StringBuilder temp = new StringBuilder();
        viewStr = temp.append("");
        tv1.setText("");
        tv2.setText(viewStr);
        index = 0;
    }

    //等于按钮事件
    public void equal(View view) {
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && inde != index-1) {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a);
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }else if (inde > 0 && inde == index-1) {
                viewStr.deleteCharAt(--index);
                tv1.setText(viewStr);
                tv2.setText(viewStr);
            }
        }
        tv1.setText(viewStr);
        tv2.setText(viewStr);
    }

    //加减乘除按钮事件
    public void addition(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a).append('+');
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }
        }
        char a = viewStr.charAt(index-1);
        if (a == '+') { return; }
        if (a == '-' || a == '×' || a == '÷' || a == '%') {
            viewStr.setCharAt(index-1,'+');
        }else {
            viewStr.append("+");
            index ++ ;
        }
        tv2.setText(viewStr);
    }
    public void subtraction(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a).append('-');
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }
        }
        char a = viewStr.charAt(index-1);
        if (a == '-') { return; }
        if (a == '+' || a == '×' || a == '÷' || a == '%') {
            viewStr.setCharAt(index-1,'-');
        }else {
            viewStr.append("-");
            index ++ ;
        }
        tv2.setText(viewStr);
    }
    public void multiplication(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a).append('×');
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }
        }
        char a = viewStr.charAt(index-1);
        if (a == '×') { return; }
        if (a == '+' || a == '-' || a == '÷' || a == '%') {
            viewStr.setCharAt(index-1,'×');
        }else {
            viewStr.append("×");
            index ++ ;
        }
        tv2.setText(viewStr);
    }
    public void division(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a).append('÷');
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }
        }
        char a = viewStr.charAt(index-1);
        if (a == '÷') { return; }
        if (a == '+' || a == '-' || a == '×' || a == '%') {
            viewStr.setCharAt(index-1,'÷');
        }else {
            viewStr.append("÷");
            index ++ ;
        }
        tv2.setText(viewStr);
    }

    //求余按钮事件
    public void surplus(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        StringBuilder temp = new StringBuilder();
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') {
                tv1.setText(calc(viewStr));
                String a = calc(viewStr);
                viewStr = temp.append(a).append('%');
                tv2.setText(viewStr);
                index = viewStr.length();
                return;
            }
        }
        char a = viewStr.charAt(index-1);
        if (a == '%') { return; }
        if (a == '+' || a == '-' || a == '×' || a == '÷') {
            viewStr.setCharAt(index-1,'%');
        }else {
            viewStr.append("%");
            index ++ ;
        }
        tv2.setText(viewStr);
    }

    //求倒数按钮事件
    public void reciprocal(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > -1) { return; }
        }
        int a = Integer.parseInt(viewStr.toString().trim());
        if (a == 0) {
            Toast.makeText(this,"0不能为除数",Toast.LENGTH_SHORT).show();
            return;
        }
        clearc(view);
        viewStr.append(1/a);
        index = String.valueOf(1/a).length();
        tv2.setText(viewStr);
    }

    //平方按钮事件
    public void square(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > -1) { return; }
        }
        int a = Integer.parseInt(viewStr.toString().trim());
        clearc(view);
        viewStr.append(a*a);
        index = String.valueOf(a*a).length();
        tv2.setText(viewStr);
    }

    //开平方按钮事件
    public void squareroot(View view) {
        if (viewStr.length() == 0) return;
        String[] asmd = {"+","-","×","÷","%"};
        for (int i = 0; i < 5; i ++) {
            int inde = viewStr.indexOf(asmd[i]);
            if (inde > -1) { return; }
        }
        int a = Integer.parseInt(viewStr.toString().trim());
        clearc(view);
        viewStr.append((int)Math.sqrt(a));
        index = String.valueOf((int)Math.sqrt(a)).length();
        tv2.setText(viewStr);
    }

}

好的,下面是一个简单Android Studio计算器应用的实现。 1. 创建一个新的Android Studio项目,选择Empty Activity。 2. 打开activity_main.xml文件,在布局中添加一些按钮和TextView组件,如下所示: ``` <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/display" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="36sp" android:text="0" android:gravity="end" android:padding="16dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="1" android:textSize="24sp" /> <Button android:id="@+id/button_2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="2" android:textSize="24sp" /> <Button android:id="@+id/button_3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="3" android:textSize="24sp" /> <Button android:id="@+id/button_add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="+" android:textSize="24sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="4" android:textSize="24sp" /> <Button android:id="@+id/button_5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="5" android:textSize="24sp" /> <Button android:id="@+id/button_6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="6" android:textSize="24sp" /> <Button android:id="@+id/button_subtract" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="-" android:textSize="24sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="7" android:textSize="24sp" /> <Button android:id="@+id/button_8" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="8" android:textSize="24sp" /> <Button android:id="@+id/button_9" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="9" android:textSize="24sp" /> <Button android:id="@+id/button_multiply" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="×" android:textSize="24sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_clear" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="C" android:textSize="24sp" /> <Button android:id="@+id/button_0" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="0" android:textSize="24sp" /> <Button android:id="@+id/button_equals" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="=" android:textSize="24sp" /> <Button android:id="@+id/button_divide" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="÷" android:textSize="24sp" /> </LinearLayout> </LinearLayout> ``` 3. 打开MainActivity.java文件,添加以下代码: ``` public class MainActivity extends AppCompatActivity { private TextView display; private String currentNumber = ""; private String operator = ""; private String result = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); display = findViewById(R.id.display); Button button0 = findViewById(R.id.button_0); Button button1 = findViewById(R.id.button_1); Button button2 = findViewById(R.id.button_2); Button button3 = findViewById(R.id.button_3); Button button4 = findViewById(R.id.button_4); Button button5 = findViewById(R.id.button_5); Button button6 = findViewById(R.id.button_6); Button button7 = findViewById(R.id.button_7); Button button8 = findViewById(R.id.button_8); Button button9 = findViewById(R.id.button_9); button0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("0"); } }); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("1"); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("2"); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("3"); } }); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("4"); } }); button5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("5"); } }); button6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("6"); } }); button7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("7"); } }); button8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("8"); } }); button9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("9"); } }); Button buttonAdd = findViewById(R.id.button_add); buttonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setOperator("+"); } }); Button buttonSubtract = findViewById(R.id.button_subtract); buttonSubtract.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setOperator("-"); } }); Button buttonMultiply = findViewById(R.id.button_multiply); buttonMultiply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setOperator("×"); } }); Button buttonDivide = findViewById(R.id.button_divide); buttonDivide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setOperator("÷"); } }); Button buttonEquals = findViewById(R.id.button_equals); buttonEquals.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { calculate(); } }); Button buttonClear = findViewById(R.id.button_clear); buttonClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clear(); } }); } private void addNumber(String number) { currentNumber += number; display.setText(currentNumber); } private void setOperator(String newOperator) { if (!currentNumber.equals("")) { operator = newOperator; result = currentNumber; currentNumber = ""; } } private void calculate() { if (!currentNumber.equals("") && !operator.equals("")) { double number1 = Double.parseDouble(result); double number2 = Double.parseDouble(currentNumber); double resultValue = 0; switch (operator) { case "+": resultValue = number1 + number2; break; case "-": resultValue = number1 - number2; break; case "×": resultValue = number1 * number2; break; case "÷": resultValue = number1 / number2; break; } currentNumber = String.valueOf(resultValue); operator = ""; result = ""; display.setText(currentNumber); } } private void clear() { operator = ""; result = ""; currentNumber = ""; display.setText("0"); } } ``` 4. 运行应用程序,在计算器上点击数字和运算符,即可进行简单的计算。 注意:这只是一个简单计算器应用程序,它并没有实现完整的计算器功能。如果您需要更复杂的计算器功能,请进行必要的更改和添加。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值