文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android Studio制作一个简单的计算器APP

2023-10-03 21:04

关注

虽然现在我们日常生活中很少用到计算器,但是第一次尝试在Android Studio上做一个计算器

程序设计步骤:
(1)在布局文件中声明编辑文件框EditText,按钮Button等组件。
(2)在MainActivity中获取组件实例。
(3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示。

程序代码设计:
布局实现:在activi_main.xml中设置。使用线性布局(LinearLayout)与网格布局(GridLayout)来设置界面。在设计区域设置一个4行4列的网格布局,每行划分为均等的16个按钮,分别代表数字0-9,小数点,和运算符加减乘除以及等于号。
 

最终效果图如下:

xml文件:

                

java文件: 

package com.example.mycalculater;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,badd,bsub,bmul,bdiv,bdot,bequal,b10,b12;    TextView ans;    double var1,var2;    boolean add,sub,mul,div,n10;    boolean sq = false;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        b1= (Button) findViewById(R.id.btn1);        b2= (Button) findViewById(R.id.btn2);        b3= (Button) findViewById(R.id.btn3);        b4= (Button) findViewById(R.id.btn4);        b5= (Button) findViewById(R.id.btn5);        b6= (Button) findViewById(R.id.btn6);        b7= (Button) findViewById(R.id.btn7);        b8= (Button) findViewById(R.id.btn8);        b9= (Button) findViewById(R.id.btn9);        b0= (Button) findViewById(R.id.btn0);        badd= (Button) findViewById(R.id.btnadd);        bsub= (Button) findViewById(R.id.btnsub);        bmul= (Button) findViewById(R.id.btnmul);        bdiv= (Button) findViewById(R.id.btndiv);        bdot= (Button) findViewById(R.id.btndot);        bequal= (Button) findViewById(R.id.btnequel);        b10= (Button) findViewById(R.id.btn10);        b12= (Button) findViewById(R.id.btn12);        ans = (TextView) findViewById(R.id.Answer);        b1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"1");                    sq=false;                }else                    ans.setText(ans.getText()+"1");            }        });        b2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"2");                    sq=false;                }else                     ans.setText(ans.getText()+"2");            }        });        b3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"3");                    sq=false;                }else                    ans.setText(ans.getText()+"3");            }        });        b4.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"4");                    sq=false;            }else                ans.setText(ans.getText()+"4");            }        });        b5.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"5");                    sq=false;                }else                ans.setText(ans.getText()+"5");            }        });        b6.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"6");                    sq=false;                }else                ans.setText(ans.getText()+"6");            }        });        b7.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"7");                    sq=false;                }else                ans.setText(ans.getText()+"7");            }        });        b8.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"8");                    sq=false;                }else                ans.setText(ans.getText()+"8");            }        });        b9.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true) {                    ans.setText(null);                    ans.setText(ans.getText()+"9");                    sq=false;                }else                ans.setText(ans.getText()+"9");            }        });        b0.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(sq==true){                    ans.setText(null);                    ans.setText(ans.getText()+"0");                    sq=false;                }else                ans.setText(ans.getText()+"0");            }        });        bdot.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    if(ans.getText().toString().contains("."))                        ans.setText(ans.getText()+"");                    else                        ans.setText(ans.getText()+".");                } catch (Exception e) {                    ans.setText("出错");                }            }        });        badd.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    var1 = Double.parseDouble(ans.getText()+"");                    add=true;                    ans.setText(null);                }catch (RuntimeException a){                    ans.setText("错误");                    sq=true;                }            }        });        bsub.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    var1 = Double.parseDouble(ans.getText()+"");                    sub=true;                    ans.setText(null);                }catch(RuntimeException a){                    ans.setText("错误");                    sq=true;                }            }        });        bmul.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    var1 = Double.parseDouble(ans.getText()+"");                    mul=true;                    ans.setText(null);                }catch(RuntimeException a){                    ans.setText("错误");                    sq=true;                }            }        });        bdiv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                                try {                    var1 = Double.parseDouble(ans.getText()+"");                    div=true;                    ans.setText(null);                }catch(RuntimeException a){                    ans.setText("错误");                    sq=true;                }            }        });        b10.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                ans.setText(null);                add=false;sub=false;mul=false;div=false;            }        });        b12.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    String temp = "";                    temp = ans.getText().toString().substring(0, ans.length() - 1);                    ans.setText(temp + "");                }catch(RuntimeException a){                    ans.setText("错误");                }            }        });        bequal.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    var2 = Double.parseDouble(ans.getText() + "");                    if (add == true) {                        ans.setText(var1 + var2 + "");                        add = false;                        sq = true;                    }                    if (sub == true) {                        ans.setText(var1 - var2 + "");                        sub = false;                        sq = true;                    }                    if (mul == true) {                        ans.setText(var1 * var2 + "");                        mul = false;                        sq = true;                    }                    if (div == true) {                        ans.setText(var1 / var2 + "");                        div = false;                        sq = true;                    }                    if (n10 == true) {                        ans.setText(0 + "");                        n10 = false;                        sq = true;                    }                }catch(RuntimeException a){                }                            }        });//        public void opratorCalc(String operatorNumber,String currentOprator)//        {//            if(TextUtils.isEmpty(lastOperators))//            {//                firstNumber = Double.parseDouble(operatorNumber);//                return;//            }    }}

来源地址:https://blog.csdn.net/weixin_57398221/article/details/125072470

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯