android简易计算器
说明:完成简易版计算器,能够实现基本的加、减、乘、除运算
图示:
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#3E3E3E"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/tv"
android:textColor="#d6d7d7"
android:layout_gravity="center"
android:layout_width="300dp"
android:layout_height="80dp" />
<LinearLayout
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center">
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnPlus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+" />
</LinearLayout>
<LinearLayout
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center">
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-" />
</LinearLayout>
<LinearLayout
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center">
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnMul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*" />
</LinearLayout>
<LinearLayout
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center">
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnEqual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="=" />
<Button
android:onClick="cal"
android:layout_weight="1"
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/" />
</LinearLayout>
</LinearLayout>
main文件
初始化文本框和其他控件
private TextView tv;
private int option = 0;
private boolean newdigital = true;
private double a=0,b=0;
在oncreate中对方法进行初始化
tv = (TextView) findViewById(R.id.tv);
创建按钮点击事件
创建每个按钮的点击事件 cal(),通过判断每个按钮的字符串进行相应的处理,如果点击的按钮是数字键,则在文本框中显示新的数据,如果是操作符,则进行相应的加、减、 乘、除运算。
public void cal(View v) {
String s = tv.getText().toString();
Button btn = (Button) v;
String t = (String) btn.getText();
if (btn.getId() == R.id.btn0 || btn.getId() == R.id.btn1
|| btn.getId() == R.id.btn2 || btn.getId() ==
R.id.btn3
|| btn.getId() == R.id.btn4 || btn.getId() ==
R.id.btn5
|| btn.getId() == R.id.btn6 || btn.getId() ==
R.id.btn7
|| btn.getId() == R.id.btn8 || btn.getId() ==
R.id.btn9) {
if (newdigital) {
tv.setText(s+t);
} else {
tv.setText(s);
newdigital = false;
}
return;
}
if (btn.getId() == R.id.btnPlus) {
a = Double.parseDouble(s);
option = 1;
tv.setText("");
return;
}
if (btn.getId() == R.id.btnSub) {
a = Double.parseDouble(s);
option = 2;
tv.setText("");
return;
}
if (btn.getId() == R.id.btnMul) {
a = Double.parseDouble(s);
option = 3;
tv.setText("");
return;
}
if (btn.getId() == R.id.btnDiv) {
a = Double.parseDouble(s);
option = 4;
tv.setText("");
return;
}
if (btn.getId() == R.id.btnC) {
a = 0;
b = 0;
option = 0;
newdigital = true;
tv.setText("");
return;
}
if (btn.getId() == R.id.btnEqual) {
b = Double.parseDouble(s);
switch (option) {
case 1:
tv.setText(String.valueOf(a + b));
break;
case 2:
tv.setText(String.valueOf(a - b));
break;
case 3:
tv.setText(String.valueOf(a * b));
break;
case 4: {
if (b != 0) {
tv.setText(String.valueOf(a / b));
} else {
Toast.makeText(MainActivity.this, "除数不能为0! ", Toast.LENGTH_SHORT).show();
tv.setText("");
a = 0;
b = 0;
option = 0;
newdigital = true;
return;
}
break;
}
case 5:
tv.setText(String.valueOf(Math.pow(a, b)));
break;
}
return;
}
}
如上,写下来之后就可以实现计算器的功能啦!
|