android 小程序APP 计算器代码


  1. Activity_main.xml
 
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:background="#00ffff"

    tools:context=".MainActivity">//整体布局

    <EditText

        android:layout_width="fill_parent"

        android:layout_height="90dip"

        android:id="@+id/et_input"

        android:gravity="right|bottom"

        android:background="#ffffff"

        android:layout_centerHorizontal="true"

        android:layout_alignParentTop="true" />//文本框布局



    <LinearLayout

        android:layout_marginTop="10dp"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:orientation="horizontal"

        android:layout_below="@+id/et_input"

        android:layout_alignParentLeft="true"

        android:weightSum="1">

        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="ON"

            android:textSize="40sp"

            android:background="#bebebe"

            android:id="@+id/btn_clear"

            android:layout_weight="0.54" />



        <Button

            android:layout_width="60dp"

            android:background="#bebebe"

            android:layout_height="74dp"

            android:text="OFF"

            android:textSize="40sp"

            android:id="@+id/btn_del"

            android:layout_weight="0.46" />//关机按钮

        <Button

            android:layout_width="59dp"

            android:background="#bebebe"

            android:layout_height="74dp"

            android:text="/"

            android:textSize="40sp"

            android:id="@+id/btn_divide"

            />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="*"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_multiply"

            />





    </LinearLayout>

    //第二行开始*******************************

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:layout_marginTop="80dp"

        android:orientation="horizontal"

        android:layout_below="@+id/et_input"

        android:layout_alignParentLeft="true"

        android:weightSum="1">



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="7"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_7"

            android:layout_weight="0.54" />



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="8"

            android:textSize="40sp"

            android:background="#bebebe"

            android:id="@+id/btn_8"

            android:layout_weight="0.46" />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="9"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_9"

            />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="-"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_-"

            />





    </LinearLayout>

    //第三行开始********************************

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:layout_marginTop="150dp"

        android:orientation="horizontal"

        android:layout_below="@+id/et_input"

        android:layout_alignParentLeft="true"

        android:weightSum="1">



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="4"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_4"

            android:layout_weight="0.54" />



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="5"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_5"

            android:layout_weight="0.46" />

        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="6"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_6"

            />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="+"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_plus"

            />

    </LinearLayout>

    //第四行***************************************************************

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:layout_marginTop="220dp"

        android:orientation="horizontal"

        android:layout_below="@+id/et_input"

        android:layout_alignParentLeft="true"

        android:weightSum="1">



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="1"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_1"

            android:layout_weight="0.54" />



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="2"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_2"

            android:layout_weight="0.46" />

        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="3"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_3"

            />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="0"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_0"

            android:layout_weight="0.32" />

        />

    </LinearLayout>

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:layout_marginTop="300dp"

        android:orientation="horizontal"

        android:layout_below="@+id/et_input"

        android:layout_alignParentLeft="true"

        android:weightSum="1">



        <Button

            android:layout_width="60dp"

            android:layout_height="74dp"

            android:text="."

            android:background="#bebebe"

            android:textSize="60sp"

            android:id="@+id/btn_point"

            android:layout_weight="0.54" />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="+/-"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/minus"

            android:layout_weight="0.11" />

        />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="%"

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_minus"

            android:layout_weight="0.11" />

        />



        <Button

            android:layout_width="59dp"

            android:layout_height="74dp"

            android:text="="

            android:background="#bebebe"

            android:textSize="40sp"

            android:id="@+id/btn_equal"

            android:layout_weight="0.24" />

    </LinearLayout>





</RelativeLayout>
 
 
 
 
  1. MainActivity.java
 
 
import android.support.v7.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 {

    Button btn_0 ;

    Button btn_1;

    Button btn_2;

    Button btn_3 ;

    Button btn_4 ;

    Button btn_5 ;

    Button btn_6 //数字按钮

    Button btn_7 ;

    Button btn_8 ;

    Button btn_9 ;//数字按钮

    Button btn_point //小数点按钮

    Button btn_clear ;

    Button btn_del ;

    Button btn_pluse ;

    Button btn_minus ;

    Button btn_multiply ;

    Button btn_divide ;

    Button btn_equle ;

    EditText et_input ;

    boolean clear_flag ;//清空标识



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        btn_0 = (Button) findViewById(R.id.btn_0) ;

        btn_1 = (Button) findViewById(R.id.btn_1) ;

        btn_2 = (Button) findViewById(R.id.btn_2) ;

        btn_3 = (Button) findViewById(R.id.btn_3) ;

        btn_4 = (Button) findViewById(R.id.btn_4) ;

        btn_5 = (Button) findViewById(R.id.btn_5) ;

        btn_6 = (Button) findViewById(R.id.btn_6) ;

        btn_7 = (Button) findViewById(R.id.btn_7) ;

        btn_8 = (Button) findViewById(R.id.btn_8) ;

        btn_9 = (Button) findViewById(R.id.btn_9) ;

        btn_point = (Button) findViewById(R.id.btn_point) ;

        btn_clear = (Button) findViewById(R.id.btn_clear) ;

        btn_del = (Button) findViewById(R.id.btn_del) ;

        btn_pluse = (Button) findViewById(R.id.btn_plus) ;

        btn_minus = (Button) findViewById(R.id.btn_minus) ;

        btn_multiply = (Button) findViewById(R.id.btn_multiply) ;

        btn_divide = (Button) findViewById(R.id.btn_divide) ;

        btn_equle = (Button) findViewById(R.id.btn_equal) ;

//以上实例化按钮,初始化按钮

        et_input = (EditText) findViewById(R.id.et_input);  //实例化之后的显示屏



        btn_0.setOnClickListener(this);

        btn_1.setOnClickListener(this);

        btn_2.setOnClickListener(this);

        btn_3.setOnClickListener(this);

        btn_4.setOnClickListener(this);

        btn_5.setOnClickListener(this);

        btn_6.setOnClickListener(this);

        btn_7.setOnClickListener(this);

        btn_8.setOnClickListener(this);

        btn_9.setOnClickListener(this);

        btn_point.setOnClickListener(this);

        btn_clear.setOnClickListener(this);

        btn_del.setOnClickListener(this);

        btn_pluse.setOnClickListener(this);

        btn_minus.setOnClickListener(this);

        btn_multiply.setOnClickListener(this);

        btn_divide.setOnClickListener(this);

        btn_equle.setOnClickListener(this);

        //设置以上按钮的点击事件





    }



    @Override

    public void onClick(View v) {//设置监控

        String str = et_input.getText().toString();

        switch (v.getId()) {

            case R.id.btn_0:

            case R.id.btn_1:

            case R.id.btn_2:

            case R.id.btn_3:

            case R.id.btn_4:

            case R.id.btn_5:

            case R.id.btn_6:

            case R.id.btn_7:

            case R.id.btn_8:

            case R.id.btn_9:

            case R.id.btn_point:

                if (clear_flag) {

                    clear_flag =false ;

                    str ="" ;

                    et_input.setText("");

                }

                et_input.setText(str + ((Button)v).getText());

                break ;

            case R.id.btn_plus:

            case R.id.btn_minus:

            case R.id.btn_multiply:

            case R.id.btn_divide:

                if (clear_flag) {

                    clear_flag =false ;

                    str ="" ;

                    et_input.setText("");

                }

                et_input.setText(str+ " " + ((Button)v).getText()+" ");

                break;

            case R.id.btn_del:

                if (clear_flag) {

                    clear_flag =false ;

                    str ="" ;

                    et_input.setText("");

                }else if (str!=null&&!str.equals("")){

                    et_input.setText(str.substring(0,str.length()-1));

                }

                break;

            case R.id.btn_clear:

                clear_flag =false ;

                str ="" ;

                et_input.setText("");

            case R.id.btn_equal:

                getResult();

                break ;



        }

    }

    /* 单独的调用运算结果

    *

    *

    * */

    private void getResult(){

        String exp = et_input.getText().toString();

        if (exp == null||exp.equals("")){

            return;

        }

        if(!exp.contains(" ")) {

            return;

        }

        if (clear_flag){

            clear_flag = false ;

            return;



        }

        clear_flag = true ;

        double result = 0 ;

        String s1 = exp.substring(0,exp.indexOf(" ")); //运算符前面的字符串

        String op = exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2) ;

        String s2 = exp.substring(exp.indexOf(" ")+3) ;

        if (!s1.equals(" ")&&!s2.equals(" ")){

            double d1 = Double.parseDouble(s1) ;

            double d2 = Double.parseDouble(s2) ;

            if (op.equals("+")){

                result = d1 + d2 ;



            }else  if (op.equals("-")){

                result = d1 - d2 ;



            }else  if (op.equals("*")){

                result = d1 * d2 ;



            }else  if (op.equals("/")){

                if(d2 == 0){

                    result = 0 ;

                }else {

                    result = d1/d2 ;

                }

            }

            if (s1.contains(".")&&s2.contains(".")) {

                int r = (int) result;

                et_input.setText(r+"");

            }else {

                et_input.setText(result+"");



            }

        }else if (!s1.equals("")&&s2.equals("")){

            et_input.setText(exp);

        }else if (s1.equals("")&&!s2.equals("")){

            double d2 = Double.parseDouble(s2) ;

            if (op.equals("+")){

                result = 0 + d2 ;



            }else  if (op.equals("-")){

                result = 0 - d2 ;



            }else  if (op.equals("*")){

                result = 0 ;



            }else  if (op.equals("/")){

                result = 0 ;

            }

            if (s2.contains(".")) {

                int r = (int) result;

                et_input.setText(r+"");

            }else {

                et_input.setText(result+"");

            }

        }else {

            et_input.setText("");



        }

    }

}
 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值