你的位置:首页 > 操作系统

[操作系统]android 计算器


<??><LinearLayout ="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical" >    <LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <TextView  android:id="@+id/tvResult"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:height="50dp"  android:text=""    android:hint="结果"  />  </LinearLayout><LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <Button  android:id="@+id/btnBackspace"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="150dp"  android:layout_marginLeft="10dp"  android:text="退格"/>  <Button  android:id="@+id/btnCE"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="150dp"  android:text="清除"/>  </LinearLayout><LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <Button  android:id="@+id/btn7"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_marginLeft="10dp"  android:width="75dp"  android:text="7"/>  <Button  android:id="@+id/btn8"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="8"/>  <Button  android:id="@+id/btn9"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="9"/>  <Button  android:id="@+id/btnDiv"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="/"/>  </LinearLayout><LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <Button  android:id="@+id/btn4"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_marginLeft="10dp"  android:width="75dp"  android:text="4"/>  <Button  android:id="@+id/btn5"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="5"/>  <Button  android:id="@+id/btn6"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="6"/>  <Button  android:id="@+id/btnMul"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="*"/>  </LinearLayout><LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <Button  android:id="@+id/btn1"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_marginLeft="10dp"  android:width="75dp"  android:text="1"/>  <Button  android:id="@+id/btn2"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="2"/>  <Button  android:id="@+id/btn3"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="3"/>  <Button  android:id="@+id/btnAdd"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="+"/>  </LinearLayout><LinearLayout android:layout_width="fill_parent"  android:layout_height="wrap_content">  <Button  android:id="@+id/btn0"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_marginLeft="10dp"  android:width="75dp"  android:text="0"/>  <Button  android:id="@+id/btnC"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="C"/>  <Button  android:id="@+id/btnEqu"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="="/>  <Button  android:id="@+id/btnSub"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:width="75dp"  android:text="-"/>  </LinearLayout>  </LinearLayout>

package com.example.yanlei.yl2;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import android.view.View.OnClickListener;public class MainActivity extends AppCompatActivity implements OnClickListener {  //声明一些控件  Button btn0 = null;  Button btn1 = null;  Button btn2 = null;  Button btn3 = null;  Button btn4 = null;  Button btn5 = null;  Button btn6 = null;  Button btn7 = null;  Button btn8 = null;  Button btn9 = null;  Button btnBackspace = null;  Button btnCE = null;  Button btnC = null;  Button btnAdd = null;  Button btnSub = null;  Button btnMul = null;  Button btnDiv = null;  Button btnEqu = null;  TextView tvResult = null;  //声明两个参数。接收tvResult前后的值  double num1 = 0, num2 = 0;  double Result = 0;//计算结果  int op = 0;//判断操作数,  boolean isClickEqu = false;//判断是否按了“=”按钮  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //从布局文件中获取控件,    btn0 = (Button) findViewById(R.id.btn0);    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);    btn7 = (Button) findViewById(R.id.btn7);    btn8 = (Button) findViewById(R.id.btn8);    btn9 = (Button) findViewById(R.id.btn9);    btnBackspace = (Button) findViewById(R.id.btnBackspace);    btnCE = (Button) findViewById(R.id.btnCE);    btnC = (Button) findViewById(R.id.btnC);    btnEqu = (Button) findViewById(R.id.btnEqu);    btnAdd = (Button) findViewById(R.id.btnAdd);    btnSub = (Button) findViewById(R.id.btnSub);    btnMul = (Button) findViewById(R.id.btnMul);    btnDiv = (Button) findViewById(R.id.btnDiv);    tvResult = (TextView) findViewById(R.id.tvResult);    //添加监听\    btnBackspace.setOnClickListener(this);    btnCE.setOnClickListener(MainActivity.this);    btn0.setOnClickListener(MainActivity.this);    btn1.setOnClickListener(this);    btn2.setOnClickListener(this);    btn3.setOnClickListener(this);    btn4.setOnClickListener(this);    btn5.setOnClickListener(this);    btn6.setOnClickListener(this);    btn7.setOnClickListener(this);    btn8.setOnClickListener(this);    btn9.setOnClickListener(this);    btnAdd.setOnClickListener(this);    btnSub.setOnClickListener(this);    btnMul.setOnClickListener(this);    btnDiv.setOnClickListener(this);    btnEqu.setOnClickListener(this);  }  @Override  public void onClick(View v) {    switch (v.getId()) {      //btnBackspace和CE--------------------      case R.id.btnBackspace:        String myStr = tvResult.getText().toString();        try {          tvResult.setText(myStr.substring(0, myStr.length() - 1));        } catch (Exception e) {          tvResult.setText("");        }        break;      case R.id.btnCE:        tvResult.setText(null);        break;      //btn0--9---------------------------      case R.id.btn0:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString = tvResult.getText().toString();        myString += "0";        tvResult.setText(myString);        break;      case R.id.btn1:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString1 = tvResult.getText().toString();        myString1 += "1";        tvResult.setText(myString1);        break;      case R.id.btn2:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString2 = tvResult.getText().toString();        myString2 += "2";        tvResult.setText(myString2);        break;      case R.id.btn3:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString3 = tvResult.getText().toString();        myString3 += "3";        tvResult.setText(myString3);        break;      case R.id.btn4:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString4 = tvResult.getText().toString();        myString4 += "4";        tvResult.setText(myString4);        break;      case R.id.btn5:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString5 = tvResult.getText().toString();        myString5 += "5";        tvResult.setText(myString5);        break;      case R.id.btn6:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString6 = tvResult.getText().toString();        myString6 += "6";        tvResult.setText(myString6);        break;      case R.id.btn7:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString7 = tvResult.getText().toString();        myString7 += "7";        tvResult.setText(myString7);        break;      case R.id.btn8:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString8 = tvResult.getText().toString();        myString8 += "8";        tvResult.setText(myString8);        break;      case R.id.btn9:        if (isClickEqu) {          tvResult.setText(null);          isClickEqu = false;        }        String myString9 = tvResult.getText().toString();        myString9 += "9";        tvResult.setText(myString9);        break;      //btn+-*/=--------------------------------      case R.id.btnAdd:        String myStringAdd = tvResult.getText().toString();        if (myStringAdd.equals(null)) {          return;        }        num1 = Double.valueOf(myStringAdd);        tvResult.setText(null);        op = 1;        isClickEqu = false;        break;      case R.id.btnSub:        String myStringSub = tvResult.getText().toString();        if (myStringSub.equals(null)) {          return;        }        num1 = Double.valueOf(myStringSub);        tvResult.setText(null);        op = 2;        isClickEqu = false;        break;      case R.id.btnMul:        String myStringMul = tvResult.getText().toString();        if (myStringMul.equals(null)) {          return;        }        num1 = Double.valueOf(myStringMul);        tvResult.setText(null);        op = 3;        isClickEqu = false;        break;      case R.id.btnDiv:        String myStringDiv = tvResult.getText().toString();        if (myStringDiv.equals(null)) {          return;        }        num1 = Double.valueOf(myStringDiv);        tvResult.setText(null);        op = 4;        isClickEqu = false;        break;      case R.id.btnEqu:        String myStringEqu = tvResult.getText().toString();        if (myStringEqu.equals(null)) {          return;        }        num2 = Double.valueOf(myStringEqu);        tvResult.setText(null);        switch (op) {          case 0:            Result = num2;            break;          case 1:            Result = num1 + num2;            break;          case 2:            Result = num1 - num2;            break;          case 3:            Result = num1 * num2;            break;          case 4:            Result = num1 / num2;            break;          default:            Result = 0;            break;        }        tvResult.setText(String.valueOf(Result));        isClickEqu = true;        break;      default:        break;    }  }}