文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android应用开发基础—实现一个简易的计算器学习总结

2023-09-29 07:32

关注

目录

一、前言

二、设计思路

布局:

后台:

三、演示:

 四、总结


一、前言

学习目标:根据课程所学的相关知识,完成一个简易的计算器,并实现一定的功能。

工具环境:Android studio、Java语言

实现功能:

完成简单的页面布局,要有数字、加、减、乘、除、删除、清零等基本按钮

完成后台对有关功能的基本实现

二、设计思路

布局:

新建一个Android Studio项目,并创建一个Activity用于显示计算器的UI界面

在布局文件中添加TextView用于显示用户输入的表达式和计算结果,以及多个Button控件用于用户的操作。

一、布局使用GridLayout完成布局:

整体布局放一个GridLayout,其中:

(1)第一个GridLayout放入两个编辑框,作为计算器的结果框和输入过程框

                     

(2)第二个GridLayout放入操作的按钮

        

布局样式大致如图所示:

 二、部分代码解释:

为相应的按钮添加id

完善布局美观

后台:

通过布局绑定id实现相关功能,在Activity中,为每个Button控件添加点击事件的监听器,并在其中编写相应的逻辑代码

package com.example.wyn_0411;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 Studio和Java语言实现简单的计算器的过程中,我发现了Java语言和Android Studio这两个强大的工具的优点和使用方法,深刻体会到了软件开发的乐趣和挑战性。

首先,Java语言可以帮助开发者快速开发出高效稳定的应用程序,其中尤其强调面向对象的思想和编写高质量的代码。在这个应用程序中我使用了Java语言编写逻辑代码,并采用了面向对象的编程方式,将各种计算功能分别封装成函数,并结合类的实例化来实现计算器的基本功能,这大大提高了程序的代码质量和可重用性。在编写代码的过程中,我需要认真思考代码的逻辑性和完成度等问题,必须一步一步地解决问题。这种过程可以锻炼我的逻辑思维和解决问题的能力。

其次,Android Studio作为一种高级的开发工具,可以有效提高程序员的开发效率,例如代码提示和自动补全、调试以及丰富的开发库和插件等等。同时,Android Studio还提供了一些强大的工具,例如布局编辑器、调试器、生成APK、发布应用程序等等,这些工具帮助开发者快速和高效地开发出高质量的应用程序。以及在UI的设计和交互实现中,需要根据用户的习惯和需求,设计出一个方便实用的界面锻炼了我的UI设计能力。在代码的调试和优化中,我需要仔细查找和解决各种可能出现的问题,精益求精,让代码更加稳定和高效。这锻炼了我的耐心和细节把控能力

总的来说,在使用Android Studio和Java语言实现简单的计算器的过程中,我受益匪浅,不仅让我深入了解了Java语言和应用程序的开发流程、设计思路和实现技巧,还让我认识到了软件开发的妙趣和难度。我相信,通过不断努力和学习,我将能够编写出更加优秀、实用和高效的应用程序。

来源地址:https://blog.csdn.net/m0_75142445/article/details/131310153

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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