本文实例为大家分享了Android studio制作简易计算器的具体代码,供大家参考,具体内容如下 布局如下: 布局文件代码: ?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android="http://schemas.and
          本文实例为大家分享了Android studio制作简易计算器的具体代码,供大家参考,具体内容如下
布局如下:

布局文件代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:id="@+id/mc" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".homework_3"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="110dp" android:ems="10" android:inputType="textPersonName" android:hint="请输入" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_mc" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="mc" /> <Button android:id="@+id/button_mjia" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="m+" /> <Button android:id="@+id/button_mjian" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="m-" /> <Button android:id="@+id/button_mr" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="mr" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_c" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="c" /> <Button android:id="@+id/button_xing" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="*" /> <Button android:id="@+id/button_chu" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="/" /> <Button android:id="@+id/button_xiaoyu" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="<" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_7" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="7" /> <Button android:id="@+id/button_8" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="8" /> <Button android:id="@+id/button_9" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="9" /> <Button android:id="@+id/button_jian" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="-" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_4" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="4" /> <Button android:id="@+id/button_5" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="5" /> <Button android:id="@+id/button_6" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="6" /> <Button android:id="@+id/button_jia" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="+" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="3" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="1" /> <Button android:id="@+id/button_2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="2" /> <Button android:id="@+id/button_3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="3" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_0" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="2" android:insetTop="0dp" android:insetBottom="0dp" android:text="0" /> <Button android:id="@+id/button_dian" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="." /> </LinearLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/button_dengyu" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:insetTop="0dp" android:insetBottom="0dp" android:text="=" /> </LinearLayout> </LinearLayout> </LinearLayout>
JAVA代码:
package com.example.a01_helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Debug;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.material.badge.BadgeUtils;
public class homework_3 extends AppCompatActivity implements View.OnClickListener{
    //创建button对象
    Button button_mc; //mc
    Button button_mjia; //m+
    Button button_mjian; //m-
    Button button_mr; //mr
    Button button_c; //c
    Button button_xing; //*
    Button button_chu; // /
    Button button_xiaoyu; // <
    Button button_7; // 7
    Button button_8; //8
    Button button_9; //9
    Button button_jian; // -
    Button button_4; // 4
    Button button_5; // 5
    Button button_6; // 6
    Button button_jia; // +
    Button button_1; // 1
    Button button_2; // 2
    Button button_3; // 3
    Button button_0; // 0
    Button button_dian; // .
    Button button_dengyu; // =
    EditText result;
    // 判断文本编辑框中是否清空
    boolean is_clear;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_homework_3);
        // 实例化对象
        button_mc = (Button)findViewById(R.id.button_mc);
        button_mjia = (Button)findViewById(R.id.button_mjia);
        button_mjian = (Button)findViewById(R.id.button_mjian);
        button_mr = (Button)findViewById(R.id.button_mr);
        button_c = (Button)findViewById(R.id.button_c);
        button_xing = (Button)findViewById(R.id.button_xing);
        button_chu = (Button)findViewById(R.id.button_chu);
        button_xiaoyu = (Button)findViewById(R.id.button_xiaoyu);
        button_7 = (Button)findViewById(R.id.button_7);
        button_8 = (Button)findViewById(R.id.button_8);
        button_9 = (Button)findViewById(R.id.button_9);
        button_jian = (Button)findViewById(R.id.button_jian);
        button_4 = (Button)findViewById(R.id.button_4);
        button_5 = (Button)findViewById(R.id.button_5);
        button_6 = (Button)findViewById(R.id.button_6);
        button_jia = (Button)findViewById(R.id.button_jia);
        button_1 = (Button)findViewById(R.id.button_1);
        button_2 = (Button)findViewById(R.id.button_2);
        button_3 = (Button)findViewById(R.id.button_3);
        button_0 = (Button)findViewById(R.id.button_0);
        button_dian = (Button)findViewById(R.id.button_dian);
        button_dengyu = (Button)findViewById(R.id.button_dengyu);
        result = (EditText)findViewById(R.id.editText);
        // 给按钮设置点击对象
        button_mc.setOnClickListener(this);
        button_mjia.setOnClickListener(this);
        button_mjian.setOnClickListener(this);
        button_mr.setOnClickListener(this);
        button_c.setOnClickListener(this);
        button_xing.setOnClickListener(this);
        button_chu.setOnClickListener(this);
        button_xiaoyu.setOnClickListener(this);
        button_7.setOnClickListener(this);
        button_8.setOnClickListener(this);
        button_9.setOnClickListener(this);
        button_jian.setOnClickListener(this);
        button_4.setOnClickListener(this);
        button_5.setOnClickListener(this);
        button_6.setOnClickListener(this);
        button_jia.setOnClickListener(this);
        button_1.setOnClickListener(this);
        button_2.setOnClickListener(this);
        button_3.setOnClickListener(this);
        button_0.setOnClickListener(this);
        button_dian.setOnClickListener(this);
        button_dengyu.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        String str = result.getText().toString();
        switch (v.getId()){
            case R.id.button_0:
            case R.id.button_1:
            case R.id.button_2:
            case R.id.button_3:
            case R.id.button_4:
            case R.id.button_5:
            case R.id.button_6:
            case R.id.button_7:
            case R.id.button_8:
            case R.id.button_9:
                if(result.length()==0){
                    str = "";
                    result.setText("");
                }
                result.setText(str+((Button)v).getText());
                break;
            case R.id.button_dian:
                if(result.length()==0){
                    return;
                }
                else {
                    Log.d("homework_3","aaa");
                    result.setText(str+((Button)v).getText());
                    break;
                }
            case R.id.button_xiaoyu:
                if (is_clear) {
                    is_clear =false ;
                    str ="" ;
                    result.setText("");
                }else if (str!=null&&!str.equals("")){
                    result.setText(str.substring(0,str.length()-1));
                }
                break;
            case R.id.button_jia:
            case R.id.button_jian:
            case R.id.button_xing:
            case R.id.button_chu:
                if (result.length()==0)
                {
                    str = "";
                    result.setText("");
                }
                result.setText(str+" "+((Button)v).getText()+" ");
                break;
            case R.id.button_c:
                is_clear = false;
                result.setText("");
            case R.id.button_dengyu:
                Log.d("homework_3","=");
                getResult();
                break;
        }
    }
    private void getResult(){
        String exp = result.getText().toString();
        if (exp==null||exp.equals(""))
        {
            return;
        }
        if(!exp.contains(" "))
        {
            return;
        }
        if (is_clear)
        {
            is_clear = false;
            return;
        }
        is_clear = true;
        double Result = 0;
        // public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引
        String s1 = exp.substring(0,exp.indexOf(" "));//找到第一个数字
        Log.d("homework_3",s1);
        String op = exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);//找到运算符
        Log.d("homework_3",op);
        String s2 = exp.substring(exp.indexOf(" ")+3);//找到第二个数字
        Log.d("homework_3",s2);
        if (!s1.equals(" ")&&!s2.equals(" ")){
            double d1 = Double.parseDouble(s1);
            double d2 = Double.parseDouble(s2);
            if(op.equals("+")){
                Result = d1+d2;
                String o = String.valueOf(Result);
                Log.d("homework_3",o);
                result.setText(o);
                return;
            }else if (op.equals("-")){
                Result = d1-d2;
                String o = String.valueOf(Result);
                Log.d("homework_3",o);
                result.setText(o);
                return;
            }else if (op.equals("*")){
                Result = d1*d2;
                String o = String.valueOf(Result);
                Log.d("homework_3",o);
                result.setText(o);
                return;
            }else if (op.equals("/")){
                Result = d1/d2;
                String o = String.valueOf(Result);
                Log.d("homework_3",o);
                result.setText(o);
                return;
            }
        }
    }
}
存在一些小bug,待改正
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。
