您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

android实现简单计算器

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

前台代码如下

<?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,只实现了两个操作数的运算,功能简单,比较粗糙。

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