(含完整代码)简易Android计算器的实现

您所在的位置:网站首页 打折用手机计算器怎么计算 (含完整代码)简易Android计算器的实现

(含完整代码)简易Android计算器的实现

2024-06-16 05:56| 来源: 网络整理| 查看: 265

文章结构 1、项目要求2、实现思路3、代码实现主文件子文件 4、效果预览

1、项目要求

其实老师的要求就是做一个简易的计算器,有两个文本框,一个按钮,然后实现加法即可。 但是我还是想做一个比较好康的计算器(如下),也可以借此写个博客和大家分享一下 计算器

2、实现思路

思路就是做一个和平时手机用的计算器差不多的即可。 六行:第一行是显示计算过程和结果的    第二行道第六行是放各种按钮的,直接看效果预览就知道了 By the way,这里我的计算器只是个很粗糙的版本,我已经把UI都搞好了,并且把一些简单的计算都做好了,大家只需要完善一下就可以达到自己的需求了!各位都是学过Java的,相信对大家来说应该不难吧! 代码太多,所以分为    主文件:MainActivity.java、activity_main.xml    子文件:         子文件内容

3、代码实现 主文件

废话不多说,直接上代码 MainActivity.java(这是java文件的代码内容):

package cn.hillain.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity2 extends AppCompatActivity { private TextView input; private TextView result; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); input = this.findViewById(R.id.input); result = this.findViewById(R.id.result); } String input1 = ""; String oper = ""; String input2 = ""; boolean flag = false; boolean input1_flag = false; public void oneOnClick(View view){ if(view instanceof TextView){ String oneText = ((TextView)view).getText().toString(); if(flag){ switch (oneText){ case "C": input.setText(""); result.setText(""); input1 = ""; input2 = ""; oper =""; input1_flag=false; flag=false; break; } }else{ switch (oneText){ case "+/-": break; case "%": break; case "1": if(!input1_flag){ input1 += "1"; input.setText(input1); }else{ input2 += "1"; input.setText(input1+oper+input2); } break; case "2": if(!input1_flag){ input1 += "2"; input.setText(input1); }else{ input2 += "2"; input.setText(input1+oper+input2); } break; case "3": if(!input1_flag){ input1 += "3"; input.setText(input1); }else{ input2 += "3"; input.setText(input1+oper+input2); } break; case "4": if(!input1_flag){ input1 += "4"; input.setText(input1); }else{ input2 += "4"; input.setText(input1+oper+input2); } break; case "5": if(!input1_flag){ input1 += "5"; input.setText(input1); }else{ input2 += "5"; input.setText(input1+oper+input2); } break; case "6": if(!input1_flag){ input1 += "6"; input.setText(input1); }else{ input2 += "6"; input.setText(input1+oper+input2); } break; case "7": if(!input1_flag){ input1 += "7"; input.setText(input1); }else{ input2 += "7"; input.setText(input1+oper+input2); } break; case "8": if(!input1_flag){ input1 += "8"; input.setText(input1); }else{ input2 += "8"; input.setText(input1+oper+input2); } break; case "9": if(!input1_flag){ input1 += "9"; input.setText(input1); }else{ input2 += "9"; input.setText(input1+oper+input2); } break; case "0": if(!input1_flag){ input1 += "0"; input.setText(input1); }else{ input2 += "0"; input.setText(input1+oper+input2); } break; case ".": if(!input1_flag){ input1 += "."; input.setText(input1); }else{ input2 += "."; input.setText(input1+oper+input2); } break; case "÷": oper = "÷"; input1_flag = true; input.setText(input1+oper+input2); break; case "*": oper = "*"; input1_flag = true; input.setText(input1+oper+input2); break; case "-": oper = "-"; input1_flag = true; input.setText(input1+oper+input2); break; case "+": oper = "+"; input1_flag = true; input.setText(input1+oper+input2); break; case "=": float num1 = Float.valueOf(input1).floatValue(); float num2 = Float.valueOf(input2).floatValue(); if(oper.equals("+")){ flag = true; result.setText(String.valueOf(num1+num2)); } else if(oper.equals("-")){ flag = true; result.setText(String.valueOf(num1-num2)); } else if(oper.equals("*")){ flag = true; result.setText(String.valueOf(num1*num2)); } if(oper.equals("÷")){ if (num2 == 0) { Toast.makeText(MainActivity2.this, "除数不能为0", Toast.LENGTH_LONG).show(); }else{ flag = true; result.setText(String.valueOf(num1/num2)); } } break; } } } } }

activity_main.xml(layout中的xml文件):

子文件

selector_gray1.xml

selector_gray2.xml

selector_gray3.xml

shape_rectangle_darkgray.xml

shape_rectangle_gray1.xml

shape_rectangle_gray2.xml

shape_rectangle_lightgray.xml

shape_rectangle_orange.xml

4、效果预览

这么多代码,没有预览,估计大家都不想复制 计算器



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3