2025年6月8日 星期日 乙巳(蛇)年 三月十二 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

android实现简单计算器

时间:05-22来源:作者:点击数:70

前台代码如下

  • <?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"
  • android:layout_width="match_parent"
  • android:orientation="vertical"
  • android:layout_height="match_parent">
  • <TextView
  • android:id="@+id/whiteblack"
  • android:layout_width="match_parent"
  • android:layout_height="wrap_content"
  • android:gravity="right"
  • android:height="150dp"
  • android:textSize="30sp" />
  • <TableLayout
  • android:layout_width="match_parent"
  • android:layout_height="wrap_content"
  • android:stretchColumns="*" >
  • <TableRow
  • android:id="@+id/tableRow1"
  • android:layout_width="match_parent"
  • android:layout_height="wrap_content" >
  • <Button
  • android:id="@+id/btnclear"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:layout_span="2"
  • android:onClick="onClick"
  • android:text="CLEAR" />
  • <Button
  • android:id="@+id/btndelete"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:layout_span="2"
  • android:onClick="onClick"
  • android:text="☜" />
  • </TableRow>
  • <TableRow
  • android:id="@+id/tableRow2"
  • android:layout_width="match_parent"
  • android:layout_height="wrap_content" >
  • <Button
  • android:id="@+id/btn7"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="7" />
  • <Button
  • android:id="@+id/btn8"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="8" />
  • <Button
  • android:id="@+id/btn9"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="9" />
  • <Button
  • android:id="@+id/btnchu"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="÷" />
  • </TableRow>
  • <TableRow
  • android:id="@+id/tableRow3"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content" >
  • <Button
  • android:id="@+id/btn4"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="4" />
  • <Button
  • android:id="@+id/btn5"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="5" />
  • <Button
  • android:id="@+id/btn6"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="6" />
  • <Button
  • android:id="@+id/btnmul"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="×" />
  • </TableRow>
  • <TableRow
  • android:id="@+id/tableRow4"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content" >
  • <Button
  • android:id="@+id/btn1"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="1" />
  • <Button
  • android:id="@+id/btn2"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="2" />
  • <Button
  • android:id="@+id/btn3"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="3" />
  • <Button
  • android:id="@+id/btnsub"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="-" />
  • </TableRow>
  • <TableRow
  • android:id="@+id/tableRow5"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content" >
  • <Button
  • android:id="@+id/btnpoint"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="." />
  • <Button
  • android:id="@+id/btn_0"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="0" />
  • <Button
  • android:id="@+id/btnequ"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="=" />
  • <Button
  • android:id="@+id/btnadd"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:onClick="onClick"
  • android:text="+" />
  • </TableRow>
  • </TableLayout>
  • </LinearLayout>

后台代码如下

  • package com.example.a19575.jiandanjisuanqi;
  • import android.content.Context;
  • import android.content.DialogInterface;
  • import android.support.annotation.Nullable;
  • import android.support.v7.app.AppCompatActivity;
  • import android.os.Bundle;
  • import android.app.Activity;
  • import android.os.Bundle;
  • import android.view.View;
  • import android.widget.Button;
  • import android.widget.TextView;
  • import android.widget.Toast;
  • public class MainActivity extends AppCompatActivity {
  • TextView textView;
  • Button btnclear;
  • Button btndelete;
  • Button btn7;
  • Button btn8;
  • Button btn9;
  • Button btn1;
  • Button btn2;
  • Button btn3;
  • Button btn4;
  • Button btn5;
  • Button btn6;
  • Button btn0;
  • Button btnjia;
  • Button btnjian;
  • Button btncheng;
  • Button btnchu;
  • Button btnpoint;
  • Button btnequ;
  • String str1="";
  • String str2="";
  • int flagdelete=0;
  • int flagclear=0;
  • @Override
  • protected void onCreate(@Nullable Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_main);
  • textView=(TextView)findViewById(R.id.whiteblack);
  • btnclear=(Button)findViewById(R.id.btnclear);
  • btndelete=(Button)findViewById(R.id.btndelete);
  • btn7=(Button)findViewById(R.id.btn7);
  • btn8=(Button)findViewById(R.id.btn8);
  • btn9=(Button)findViewById(R.id.btn9);
  • btn1=(Button)findViewById(R.id.btn1);
  • btn2=(Button)findViewById(R.id.btn2);
  • btn3=(Button)findViewById(R.id.btn3);
  • btn4=(Button)findViewById(R.id.btn4);
  • btn5=(Button)findViewById(R.id.btn5);
  • btn6=(Button)findViewById(R.id.btn6);
  • btn0=(Button)findViewById(R.id.btn_0);
  • btnjia=(Button)findViewById(R.id.btnadd);
  • btnjian=(Button)findViewById(R.id.btnsub);
  • btncheng=(Button)findViewById(R.id.btnmul);
  • btnchu=(Button)findViewById(R.id.btnchu);
  • btnpoint=(Button)findViewById(R.id.btnpoint);
  • btnequ=(Button)findViewById(R.id.btnequ);
  • }
  • public void onClick(View v)
  • {
  • switch (v.getId()){
  • case R.id.btn1:str1+="1";break;
  • case R.id.btn2:str1+="2";break;
  • case R.id.btn3:str1+="3";break;
  • case R.id.btn4:str1+="4";break;
  • case R.id.btn5:str1+="5";break;
  • case R.id.btn6:str1+="6";break;
  • case R.id.btn7:str1+="7";break;
  • case R.id.btn8:str1+="8";break;
  • case R.id.btn9:str1+="9";break;
  • case R.id.btn_0:str1+="0";break;
  • case R.id.btnadd:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false && str1.contains("/")==false)str1+="+";break;
  • case R.id.btnsub:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="-";break;
  • case R.id.btnchu:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="/";break;
  • case R.id.btnmul:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="*";break;//保证只含有一个操作数
  • case R.id.btnpoint:str1+=".";break;
  • case R.id.btndelete:flagdelete=1 ;break;
  • case R.id.btnclear: flagclear=1;break;
  • case R.id.btnequ: str1+="=";break;
  • }
  • if(flagdelete==1&& str1.length()>=1){//删除一个字符
  • str1=str1.substring(0,str1.length()-1);
  • flagdelete=0;
  • }
  • if(flagclear==1){//清空
  • str1="";
  • flagclear=0;
  • }
  • if(str1.length()==1&&(str1.charAt(0)=='+' || str1.charAt(0)=='-' || str1.charAt(0)=='*' || str1.charAt(0)=='/' || str1.charAt(0)=='.' || str1.charAt(0)=='=' )){//保证第一个字符只可以是数字
  • str1="";
  • }
  • if(str1.length()>=2&&(str1.charAt(str1.length()-1)=='-' || str1.charAt(str1.length()-1)=='+' || str1.charAt(str1.length()-1)=='/' || str1.charAt(str1.length()-1)=='*' ||//确保只能输入一个运算符
  • str1.charAt(str1.length()-1)=='=' || str1.charAt(str1.length()-1)=='.')&& (str1.charAt(str1.length()-2)=='-' ||str1.charAt(str1.length()-2)=='+' ||
  • str1.charAt(str1.length()-2)=='*' || str1.charAt(str1.length()-2)=='/' || str1.charAt(str1.length()-2)=='=' || str1.charAt(str1.length()-2)=='.' )){
  • str1=str1.substring(0,str1.length()-1);
  • }
  • textView.setText(str1);
  • int t=0;
  • int flag1=0;
  • if(str1.length()>3&&str1.charAt(str1.length()-1)=='='){
  • char a[]=str1.toCharArray();
  • for(int i=0;i<str1.length();i++) {
  • if (a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/') {//得到运算符的位置
  • t = i;
  • break;
  • }
  • }
  • double a2;
  • double b2;
  • try{
  • a2 = Double.parseDouble(str1.substring(0, t ));
  • b2 = Double.parseDouble(str1.substring(t + 1, str1.length() - 1));
  • if (str1.contains("+"))
  • str2 = String.valueOf(a2 + b2);
  • if (str1.contains("-"))
  • str2 = String.valueOf(a2 - b2);
  • if (str1.contains("*"))
  • str2 = String.valueOf(a2 * b2);
  • if (str1.contains("/") && b2 != 0)
  • str2 = String.valueOf(a2 / b2);
  • if (str1.contains("/") && b2 == 0)
  • flag1 = 1;
  • }catch (Exception e)
  • {
  • textView.setText("error");;
  • }
  • if(flag1==1){
  • textView.setText("分母不可为零");
  • flag1=0;
  • }
  • else
  • textView.setText(str1+str2);
  • }
  • }
  • }

截图如下

总结:该计算器是我暑假随便写的一个app,只实现了两个操作数的运算,功能简单,比较粗糙。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门