<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="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; } } }
原文:http://www.cnblogs.com/gisoracle/p/5011230.html