005.計算機
![](app5.gif)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|right" >
<TextView
android:id="@+id/txtDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="#ff0000"
android:textSize="46dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/btnClear"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:onClick="doClear"
android:text="C" />
<Button
android:id="@+id/btnBack"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doBack"
android:text="B" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/btnN7"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum7"
android:text="7" />
<Button
android:id="@+id/btnN8"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum8"
android:text="8" />
<Button
android:id="@+id/btnN9"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum9"
android:text="9" />
<Button
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doDiv"
android:text="/" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/btnN4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum4"
android:text="4" />
<Button
android:id="@+id/btnN5"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum5"
android:text="5" />
<Button
android:id="@+id/btnN6"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum6"
android:text="6" />
<Button
android:id="@+id/btnMul"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doMul"
android:text="*" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/btnN1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum1"
android:text="1" />
<Button
android:id="@+id/btnN2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum2"
android:text="2" />
<Button
android:id="@+id/btnN3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum3"
android:text="3" />
<Button
android:id="@+id/btnSub"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doSub"
android:text="-" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/btnDot"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNumd"
android:text="." />
<Button
android:id="@+id/btnN0"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doNum0"
android:text="0" />
<Button
android:id="@+id/btnEqu"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doEqu"
android:text="=" />
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="doAdd"
android:text="+" />
</LinearLayout>
</LinearLayout>
package com.example.app5;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView txtDisplay;
Double num;
char op;
boolean hasNum=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtDisplay = (TextView) this.findViewById(R.id.txtDisplay);
txtDisplay.setText("");
}
public void doClear(View view) {
txtDisplay.setText("");
}
public void doBack(View view) {
String text = txtDisplay.getText().toString();
if (text.length() > 0) {
txtDisplay.setText(text.substring(0, text.length() - 1));
}
}
public void doNum7(View view) {
txtDisplay.append("7");
}
public void doNum8(View view) {
txtDisplay.append("8");
}
public void doNum9(View view) {
txtDisplay.append("9");
}
public void doNum4(View view) {
txtDisplay.append("4");
}
public void doNum5(View view) {
txtDisplay.append("5");
}
public void doNum6(View view) {
txtDisplay.append("6");
}
public void doNum1(View view) {
txtDisplay.append("1");
}
public void doNum2(View view) {
txtDisplay.append("2");
}
public void doNum3(View view) {
txtDisplay.append("3");
}
public void doNum0(View view) {
txtDisplay.append("0");
}
public void doNumd(View view) {
txtDisplay.append(".");
}
public void doAdd(View view) {
if (hasNum) {
switch (op) {
case '+':
num += Double.parseDouble(txtDisplay.getText().toString());
break;
case '-':
num -= Double.parseDouble(txtDisplay.getText().toString());
break;
case '*':
num *= Double.parseDouble(txtDisplay.getText().toString());
break;
case '/':
num /= Double.parseDouble(txtDisplay.getText().toString());
break;
}
} else {
num = Double.parseDouble(txtDisplay.getText().toString());
}
op = '+';
txtDisplay.setText("");
hasNum = true;
}
public void doSub(View view) {
if (hasNum) {
switch (op) {
case '+':
num += Double.parseDouble(txtDisplay.getText().toString());
break;
case '-':
num -= Double.parseDouble(txtDisplay.getText().toString());
break;
case '*':
num *= Double.parseDouble(txtDisplay.getText().toString());
break;
case '/':
num /= Double.parseDouble(txtDisplay.getText().toString());
break;
}
} else {
num = Double.parseDouble(txtDisplay.getText().toString());
}
op = '-';
txtDisplay.setText("");
hasNum = true;
}
public void doMul(View view) {
if (hasNum) {
switch (op) {
case '+':
num += Double.parseDouble(txtDisplay.getText().toString());
break;
case '-':
num -= Double.parseDouble(txtDisplay.getText().toString());
break;
case '*':
num *= Double.parseDouble(txtDisplay.getText().toString());
break;
case '/':
num /= Double.parseDouble(txtDisplay.getText().toString());
break;
}
} else {
num = Double.parseDouble(txtDisplay.getText().toString());
}
op = '*';
txtDisplay.setText("");
hasNum = true;
}
public void doDiv(View view) {
if (hasNum) {
switch (op) {
case '+':
num += Double.parseDouble(txtDisplay.getText().toString());
break;
case '-':
num -= Double.parseDouble(txtDisplay.getText().toString());
break;
case '*':
num *= Double.parseDouble(txtDisplay.getText().toString());
break;
case '/':
num /= Double.parseDouble(txtDisplay.getText().toString());
break;
}
} else {
num = Double.parseDouble(txtDisplay.getText().toString());
}
op = '/';
txtDisplay.setText("");
hasNum = true;
}
public void doEqu(View view) {
switch (op) {
case '+':
num += Double.parseDouble(txtDisplay.getText().toString());
break;
case '-':
num -= Double.parseDouble(txtDisplay.getText().toString());
break;
case '*':
num *= Double.parseDouble(txtDisplay.getText().toString());
break;
case '/':
num /= Double.parseDouble(txtDisplay.getText().toString());
break;
}
txtDisplay.setText(num + "");
op='\0';
hasNum=false;
}
}