android开发【六】(基于android studio3.2)计算器

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/widget0"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg">

    <TextView
        android:id="@+id/txtResult"
        android:layout_width="400dp"
        android:layout_height="80dp"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:background="#ffffffff"
        android:text="0.0"
        android:textColor="#ff333333"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="right"/>

    <Button
        android:id="@+id/btn1"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="15dp"
        android:layout_y="85dp"
        android:text="1"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click"/>

    <Button
        android:id="@+id/btn2"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="115dp"
        android:layout_y="85dp"
        android:text="2"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btn3"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="215dp"
        android:layout_y="85dp"
        android:text="3"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btnAdd"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="315dp"
        android:layout_y="85dp"
        android:text="+"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#FF6600"
        android:onClick="add"/>

    <Button
        android:id="@+id/btn4"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="15dp"
        android:layout_y="180dp"
        android:text="4"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click"/>

    <Button
        android:id="@+id/btn5"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="115dp"
        android:layout_y="180dp"
        android:text="5"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click"/>

    <Button
        android:id="@+id/btn6"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="215dp"
        android:layout_y="180dp"
        android:text="6"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btnsub"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="315dp"
        android:layout_y="180dp"
        android:text="-"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#FF6600"
        android:onClick="sub"/>

    <Button
        android:id="@+id/btn7"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="15dp"
        android:layout_y="275dp"
        android:text="7"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btn8"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="115dp"
        android:layout_y="275dp"
        android:text="8"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btn9"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="215dp"
        android:layout_y="275dp"
        android:text="9"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="digital_click" />

    <Button
        android:id="@+id/btnMul"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="315dp"
        android:layout_y="275dp"
        android:text="*"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#FF6600"
        android:onClick="mul"/>

    <Button
        android:id="@+id/btn0"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="15dp"
        android:layout_y="370dp"
        android:text="0"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff" />

    <Button
        android:id="@+id/btnPoint"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="115dp"
        android:layout_y="370dp"
        android:text="."
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#ff5599ff"
        android:onClick="point_click"/>

    <Button
        android:id="@+id/btnDiv"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="315dp"
        android:layout_y="370dp"
        android:text="/"
        android:textSize="60dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#FF6600"
        android:onClick="div"/>


    <Button
        android:id="@+id/btndel"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_x="15dp"
        android:layout_y="465dp"
        android:text="Back"
        android:textSize="30dp"
        android:textStyle="bold"
        android:gravity="center"
        android:background="#FF4433"
        android:onClick="del"/>

    <Button
        android:id="@+id/btnequ"
        android:layout_width="175dp"
        android:layout_height="80dp"
        android:layout_x="115dp"
        android:layout_y="465dp"
        android:text="="
        android:textSize="60dp"
        tools:layout_editor_absoluteX="179dp"
        tools:layout_editor_absoluteY="404dp"
        android:gravity="center"
        android:background="#FF4433"
        android:onClick="equ"/>
</AbsoluteLayout>
package com.example.calculator;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.text.NumberFormat;

public class MainActivity extends Activity {

    double firstNum = 0;
    char currentSign = '+';
    StringBuffer currentNum = new StringBuffer();
    boolean isFirstPoint = false;
    TextView txtResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtResult = (TextView) findViewById(R.id.txtResult);
    }

    public void init() {
        currentNum.delete(0, currentNum.length());
        isFirstPoint = false;
    }

    public double stringToDouble() {
        if (currentNum.length() == 0) {
            return 0;
        }
        double result = Double.parseDouble(currentNum.toString());
        return result;
    }

    public double calcu() {
        double result = 0;
        switch (currentSign) {
            case '+':
                result = firstNum + stringToDouble();
                break;
            case '-':
                result = firstNum - stringToDouble();
                break;
            case '*':
                result = firstNum * stringToDouble();
                break;
            case '/':
                result = firstNum / stringToDouble();
                break;
        }
        NumberFormat format = NumberFormat.getInstance();
        format.setMaximumFractionDigits(2);
        result = Double.parseDouble(format.format(result));
        return result;
    }

    public void display(){

        txtResult.setText(currentNum.toString());
    }

    public void digital_click(View view){
        Button btnDigital = (Button)view;
        char text = btnDigital.getText().charAt(0);
        currentNum.append(text);
        display();
    }

    public void add(View view){
        double result = calcu();
        txtResult.setText(String.valueOf(result));
        firstNum=result;
        currentSign='+';
        init();
    }

    public void sub(View view){
        double result = calcu();
        txtResult.setText(String.valueOf(result));
        firstNum=result;
        currentSign='-';
        init();
    }

    public void mul(View view){
        double result = calcu();
        txtResult.setText(String.valueOf(result));
        firstNum=result;
        currentSign='*';
        init();
    }

    public void div(View view){
        double result = calcu();
        txtResult.setText(String.valueOf(result));
        firstNum=result;
        currentSign='/';
        init();
    }

    public void equ(View view){
        double result = calcu();
        txtResult.setText(String.valueOf(result));
        firstNum=result;
        currentSign='+';
        init();
    }

    public void point_click(View view){
        if(isFirstPoint){
            return;
        }
        if(currentNum.length()==0){
            return;
        }
        Button btnPoint=(Button)view;
        char text = btnPoint.getText().charAt(0);
        isFirstPoint=true;
        display();
    }

    public void del(View view){
        if(currentNum.length()>=1){
            currentNum.delete(currentNum.length()-1,currentNum.length());
        }
        if(currentNum.length()==0){
            init();
            display();
        }
        txtResult.setText(currentNum);
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值