Android计算器项目

来源:互联网 发布:中级程序员工资待遇 编辑:程序博客网 时间:2024/06/05 19:49

界面布局有点搓。Andriod只是业余自学玩玩,并非学习重点。


activity_main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <EditText        android:hint="@string/edt"        android:layout_weight="2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/edt" />    <LinearLayout        android:baselineAligned="false"        android:orientation="horizontal"        android:layout_weight="1"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <LinearLayout            android:layout_weight="1"            android:orientation="vertical"            android:layout_width="wrap_content"            android:layout_height="match_parent">            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button1"                android:id="@+id/button1" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button4"                android:id="@+id/button4" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button7"                android:id="@+id/button7" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button10"                android:id="@id/button10"/>            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button13"                android:id="@id/button13"/>        </LinearLayout>        <LinearLayout            android:layout_weight="1"            android:orientation="vertical"            android:layout_width="wrap_content"            android:layout_height="match_parent">            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button2"                android:id="@+id/button2" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button5"                android:id="@+id/button5" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button8"                android:id="@+id/button8" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button11"                android:id="@+id/button11" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button14"                android:id="@+id/button14"/>        </LinearLayout>        <LinearLayout            android:layout_weight="1"            android:orientation="vertical"            android:layout_width="wrap_content"            android:layout_height="match_parent">            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button3"                android:id="@+id/button3" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button6"                android:id="@+id/button6" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button9"                android:id="@+id/button9" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button12"                android:id="@+id/button12" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="@string/button15"                android:id="@id/button15"/>        </LinearLayout>        <LinearLayout            android:layout_weight="1"            android:orientation="vertical"            android:layout_width="wrap_content"            android:layout_height="match_parent">            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="2"                android:text="@string/button16"                android:id="@+id/button16" />            <Button                android:layout_weight="1"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:text="@string/button17"                android:id="@+id/button17"/>            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_weight="2"                android:text="@string/button18"                android:id="@+id/button18" />        </LinearLayout>    </LinearLayout></LinearLayout>
strings.xml布局文件:
<resources>    <string name="app_name">计算器</string>    <string name="button1">7</string>    <string name="button2">8</string>    <string name="button3">9</string>    <string name="button4">4</string>    <string name="button5">5</string>    <string name="button6">6</string>    <string name="button7">1</string>    <string name="button8">2</string>    <string name="button9">3</string>    <string name="button10">0</string>    <string name="button11">+</string>    <string name="button12">-</string>    <string name="button13">.</string>    <string name="button14">×</string>    <string name="button15">÷</string>    <string name="button16">删除</string>    <string name="button17">退格</string>    <string name="button18">=</string>    <string name="edt">hello</string></resources>

MainActivity.java逻辑代码:
package com.example.xiong.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    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_plus;//加号按钮    Button btn_minus;//减号按钮    Button btn_multiply;//乘号按钮    Button btn_divide;//除号按钮    Button btn_clear;//删除按钮    Button btn_back;//退格按钮    Button btn_equal;//等于按钮    EditText et_play;//显示输入内容的显示屏    private String str_ope = "+"; //运算符    private StringBuffer str_display = new StringBuffer();//显示    private String str_result;//结果显示    private double num1;    private double num2;    private boolean flag = true;//小数点个数开关控制    private boolean b_sub, b_mul, b_div;//运算符开关控制    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*初始化控件*/        btn_0 = (Button)findViewById(R.id.button10);        btn_1 = (Button)findViewById(R.id.button7);        btn_2 = (Button)findViewById(R.id.button8);        btn_3 = (Button)findViewById(R.id.button9);        btn_4 = (Button)findViewById(R.id.button4);        btn_5 = (Button)findViewById(R.id.button5);        btn_6 = (Button)findViewById(R.id.button6);        btn_7 = (Button)findViewById(R.id.button1);        btn_8 = (Button)findViewById(R.id.button2);        btn_9 = (Button)findViewById(R.id.button3);        btn_point = (Button)findViewById(R.id.button13);        btn_clear = (Button)findViewById(R.id.button16);        btn_plus = (Button)findViewById(R.id.button11);        btn_minus = (Button)findViewById(R.id.button12);        btn_multiply = (Button)findViewById(R.id.button14);        btn_divide = (Button)findViewById(R.id.button15);        btn_back = (Button)findViewById(R.id.button17);        btn_equal = (Button)findViewById(R.id.button18);        et_play = (EditText)findViewById(R.id.edt);        btn_0.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("0");                et_play.setText(str_display.toString());            }        });        btn_1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("1");            }        });        btn_2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("2");                et_play.setText(str_display.toString());            }        });        btn_3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("3");                et_play.setText(str_display.toString());            }        });        btn_4.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("4");                et_play.setText(str_display.toString());            }        });        btn_5.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("5");                et_play.setText(str_display.toString());            }        });        btn_6.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("6");                et_play.setText(str_display.toString());            }        });        btn_7.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("7");                et_play.setText(str_display.toString());            }        });        btn_8.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("8");                et_play.setText(str_display.toString());            }        });        btn_9.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_display.append("9");                et_play.setText(str_display.toString());            }        });        btn_point.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(flag)                {                    str_display.append(".");                    flag = false;                }            }        });        btn_back.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(str_display.length() != 0){                    str_display.deleteCharAt(str_display.length() - 1);                    et_play.setText(str_display.toString());                }            }        });        btn_plus.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v)            {                str_ope = "+";                if(!(str_display.toString().equals("")))                {                    num1 += Double.parseDouble(str_display.toString());                    str_display = new StringBuffer("");                }                if(!(str_result == null))                {                    num1 = Double.parseDouble(str_result);                    str_result = null;                }                et_play.setText(String.valueOf(num1));                flag = true;            }        });        btn_minus.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_ope = "-";                if(!b_sub && !(str_display.toString().equals("")))                {                    num1 = Double.parseDouble(str_display.toString());                    et_play.setText(String.valueOf(num1));                    str_display = new StringBuffer("");                    b_sub = true;                }                else                {                    if(!(str_display.toString().equals("")))                    {                        num1 -= Double.parseDouble(str_display.toString());                        str_display =  new StringBuffer();                    }                    if(!(str_result == null))                    {                        num1 = Double.parseDouble(str_result);                        str_result = null;                    }                    et_play.setText(String.valueOf(num1));                }                flag = true;            }        });        btn_multiply.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_ope = "*";                if(!b_mul && !(str_display.toString().equals("")))                {                    num1 = Double.parseDouble(str_display.toString());                    et_play.setText(String.valueOf(num1));                    str_display = new StringBuffer();                    b_mul = true;                }                else                {                    if(!(str_display.toString().equals("")))                    {                        num1 *= Double.parseDouble(str_display.toString());                        str_display = new StringBuffer();                    }                    if(!(str_result == null))                    {                        num1 = Double.parseDouble(str_result);                        str_result = null;                    }                    et_play.setText(String.valueOf(num1));                }                flag = true;            }        });        btn_divide.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_ope = "/";                if(!b_div && !(str_display.toString().equals("")))                {                    num1 = Double.parseDouble(str_display.toString());                    et_play.setText(String.valueOf(num1));                    str_display = new StringBuffer();                    b_div = true;                }                else                {                    if(!(str_display.toString().equals("")))                    {                        if(Double.parseDouble(str_display.toString()) == 0)                        {                            Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_LONG).show();                        }                        else                        {                            num1 /= Double.parseDouble(str_display.toString());                            str_display = new StringBuffer("");                        }                    }                    if(!(str_result == null))                    {                        num1 = Double.parseDouble(str_result);                        str_result = null;                    }                    et_play.setText(String.valueOf(num1));                }                flag = true;            }        });        btn_clear.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                str_ope = "+";                str_display = new StringBuffer("");                str_result = null;                num1 = 0;                num2 = 0;                flag = true;                b_sub = false;                b_mul = false;                b_div = false;                et_play.setText("0.0");            }        });        btn_equal.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v)            {                if(str_ope.equals("+"))                {                    num2 = Double.parseDouble(str_display.toString());                    str_result = String.valueOf(num1 + num2);                    et_play.setText(str_result);                    str_display = new StringBuffer("");                }                if(str_ope.equals("-"))                {                    num2 = Double.parseDouble(str_display.toString());                    str_result = String.valueOf(num1 - num2);                    et_play.setText(str_result);                    str_display = new StringBuffer("");                }                if(str_ope.equals("*"))                {                    num2 = Double.parseDouble(str_display.toString());                    str_result = String.valueOf(num1 * num2);                    et_play.setText(str_result);                    str_display = new StringBuffer();                }                if(str_ope.equals("/"))                {                    num2 = Double.parseDouble(str_display.toString());                    if(num2 != 0)                    {                        str_result = String.valueOf(num1 / num2);                        et_play.setText(str_result);                    }                    else                    {                        Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_LONG).show();                        str_display = new StringBuffer("");                    }                }            }        });    }}



0 0
原创粉丝点击