Android studio制作简易计算器功能

本文实例为大家分享了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="&lt;" />
    </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,待改正

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android studio设计简易计算器

    本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

  • Android Studio开发实现简单计算器功能

    本文实例为大家分享了Android Studio开发实现简单计算器的具体代码,供大家参考,具体内容如下 代码: activity_3.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • Android studio实现简易计算器App功能

    在Android studio实现简易计算器App并实现加减乘除功能,供大家参考,具体内容如下 结果 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="ma

  • android studio实现计算器

    本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下 效果图: 资源文件: color.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark&

  • Android studio开发实现计算器功能

    Android移动开发实现简单计算器功能,供大家参考,具体内容如下 前言 android 开发小实验android 移动开发实现 简易计算器功能小白也能轻松上手,复制粘贴就可使用 使用工具 Android Studio 或者 intellij idea 首先体验一下结果 预览图 源码 前端页面布局 activity_calculator.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout

  • Android studio实现简单计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析 在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算. 界面设计 采用网格GridLayout布局,设计了一个6行4列的网格,最上边是一个EditText用来显示用户输入的运算数字和运算符,以及相关的运算结果,其占4列,文本框大小为50dip:依次往下的界面分别设置了数字和运算符以及操作的按钮,各行各列的每个按钮的大小均设为26sp. 编程分析 设计了两个文

  • android studio实现简单的计算器小功能

    本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.c

  • Android Studio实现简易计算器

    如果是制作简易计算器的话是基本没有难点的,供大家参考,具体内容如下 步骤是先写好界面布局,将按钮的布局.字号颜色啥的做好,再就是设置监听器. 使用了NoTitleBar的主题 代码如下: activity_main里关于界面的代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

  • 用Android studio实现简易计算器功能

    用Android studio做一个简易计算器,供大家参考,具体内容如下 长话短说,先建立一个Android项目: 创建完成后打开activity_main.xml,构建我们的应用界面,输入以下代码: <?xml version="1.0" encoding="utf-8"?> <GridLayout  xmlns:android="http://schemas.android.com/apk/res/android"    

  • Android Studio实现简易计算器(表格布局TableLayout)

    这是一个运用网格布局来做的简易计算器,可能没有那么美观,大家可以继续完善 首先先看看成果吧 首先先建一个新的Project Calculator 然后先编写颜色背景文件 创建一个gray.xml,哪里创建呢?如图 在drawable下右击,选择new–Drawable resource file 第一个是文件名字,第二个属性可以自己选择,我们这里前两个文件选择shape,第三个文件选selector,附上颜色背景代码 gray.xml <?xml version="1.0" en

随机推荐