3.4

安卓计算器小程序

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyCalculator"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="简单计算器"
        android:gravity="center"
        android:background="#888888"
        android:textSize="17sp"
        android:textColor="#006666"/>
    <TextView
        android:id="@+id/tv_result0"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:background="#eeeeee"
        android:text="0"
        android:textSize="30sp"
        android:gravity="bottom|right"
        />
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="4"
            android:rowCount="5"
            >
            <Button
                android:id="@+id/bt_CE"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="CE"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_chu"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="/"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_cheng"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="X"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_C"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="C"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_7"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="7"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_8"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="8"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_9"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="9"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
            android:id="@+id/bt_jia"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="+"
            android:textSize="30sp"
            android:textColor="@color/black"
            />
            <Button
            android:id="@+id/bt_4"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="4"
            android:textSize="30sp"
            android:textColor="@color/black"
            />
            <Button
            android:id="@+id/bt_5"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="5"
            android:textSize="30sp"
            android:textColor="@color/black"
            />
            <Button
                android:id="@+id/bt_6"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="6"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
            android:id="@+id/bt_jian"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="-"
            android:textSize="30sp"
            android:textColor="@color/black"
            />
            <Button
            android:id="@+id/bt_1"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="1"
            android:textSize="30sp"
            android:textColor="@color/black"
            />            <Button
            android:id="@+id/bt_2"
            android:layout_width="0dp"
            android:layout_columnWeight="1"
            android:height="80dp"
            android:text="2"
            android:textSize="30sp"
            android:textColor="@color/black"
            />
            <Button
                android:id="@+id/bt_3"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="3"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_genhao"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="✔"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_daoshu"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="1/x"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_0"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="0"
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_dian"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="."
                android:textSize="30sp"
                android:textColor="@color/black"
                />
            <Button
                android:id="@+id/bt_dengyu"
                android:layout_width="0dp"
                android:layout_columnWeight="1"
                android:height="80dp"
                android:text="="
                android:textSize="30sp"
                android:textColor="@color/black"
                />








        </GridLayout>

</LinearLayout>
package com.example.chapter02;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MyCalculator extends AppCompatActivity implements View.OnClickListener {
    private TextView tv_result;

    private String first_input="";
    private String second_input="";
    private String operator_input="";

    private String result="";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_calculator);
        tv_result=findViewById(R.id.tv_result0);
        findViewById(R.id.bt_CE).setOnClickListener(this);
        findViewById(R.id.bt_chu).setOnClickListener(this);
        findViewById(R.id.bt_cheng).setOnClickListener(this);
        findViewById(R.id.bt_C).setOnClickListener(this);
        findViewById(R.id.bt_7).setOnClickListener(this);
        findViewById(R.id.bt_8).setOnClickListener(this);
        findViewById(R.id.bt_9).setOnClickListener(this);
        findViewById(R.id.bt_4).setOnClickListener(this);
        findViewById(R.id.bt_5).setOnClickListener(this);
        findViewById(R.id.bt_6).setOnClickListener(this);
        findViewById(R.id.bt_1).setOnClickListener(this);
        findViewById(R.id.bt_2).setOnClickListener(this);
        findViewById(R.id.bt_3).setOnClickListener(this);
        findViewById(R.id.bt_0).setOnClickListener(this);
        findViewById(R.id.bt_daoshu).setOnClickListener(this);
        findViewById(R.id.bt_dian).setOnClickListener(this);
        findViewById(R.id.bt_dengyu).setOnClickListener(this);
        findViewById(R.id.bt_genhao).setOnClickListener(this);
        findViewById(R.id.bt_jian).setOnClickListener(this);
        findViewById(R.id.bt_jia).setOnClickListener(this);




    }

    @Override
    public void onClick(View v) {
        String inputText;
        inputText=((TextView)v).getText().toString();
        if(v.getId()==R.id.bt_CE){

        } else if (v.getId()==R.id.bt_chu) {
            first_input=result;
            result+="/";
            operator_input="/";
            setFresh(result);

        }else if (v.getId()==R.id.bt_cheng) {
            first_input=result;
            result+="*";
            operator_input="*";
            setFresh(result);

        }else if (v.getId()==R.id.bt_C) {
            clear();
        }else if (v.getId()==R.id.bt_jia) {
            first_input=result;
            result+="+";
            operator_input="+";
            setFresh(result);

        }else if (v.getId()==R.id.bt_jian) {
            first_input=result;
            result+="-";
            operator_input="-";
            setFresh(result);

        }else if (v.getId()==R.id.bt_genhao) {
            first_input=result;
            operator_input="✔";
            first_input=Double.toString(operatorCa());
            result=first_input;
            setFresh(result);
            end();
        }else if (v.getId()==R.id.bt_dengyu) {
            first_input=Double.toString(operatorCa());
            result=first_input;
            setFresh(result);
            end();
        }else if (v.getId()==R.id.bt_daoshu) {
            first_input=result;
            operator_input="1/x";
            first_input=Double.toString(operatorCa());
            result=first_input;
            setFresh(result);
            end();
        }else {
            if(operator_input.equals("")){
                first_input+=inputText;
            }else {
                second_input+=inputText;
            }
            if(tv_result.getText().equals("0") && !inputText.equals(".")){
                setFresh(inputText);
            }else {
                setFresh(result+inputText);
            }
        }

    }

    private double operatorCa(){
        switch (operator_input){
            case "+":
                return Double.parseDouble(first_input)+Double.parseDouble(second_input);
            case "-":
                return Double.parseDouble(first_input)-Double.parseDouble(second_input);
            case "*":
                return Double.parseDouble(first_input)*Double.parseDouble(second_input);
            case "/":
                return Double.parseDouble(first_input)/Double.parseDouble(second_input);
            case "✔":
                return Math.sqrt(Double.parseDouble(first_input));
            case "1/x":
                return  1.0/Double.parseDouble(first_input);
        }
        return 0;
    }

    private void end(){
        second_input="";
        operator_input="";
    }
    private void clear(){
        setFresh("0");
        first_input="";
        second_input="";
        operator_input="";
    }
    private void setFresh(String text){
        result=text;
        tv_result.setText(result);
    }
}
posted @ 2024-03-04 23:13  aallofitisst  阅读(7)  评论(0)    收藏  举报