当前位置: 代码网 > it编程>App开发>Android > 基于Android实现计算器计算功能

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

2024年07月03日 Android 我要评论
一.新建一个项目步骤:1.新建项目2.选择二.用户界面构建找到项目的res的下面layout里面的activity.xml文件进行约束布局界面构建。activity.xml代码如下:<?xml

一.新建一个项目

步骤:

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计算功能的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com