用Android studio 做一个计算器
时间: 2023-12-03 09:04:55 浏览: 144
Android计算器(Android studio)
5星 · 资源好评率100%
好的,下面是实现计算器的基本步骤:
1. 创建一个新的 Android Studio 项目。
2. 在 layout 中创建一个布局文件,用于显示计算器的界面。
3. 在布局文件中添加 TextView 控件用于显示计算结果,以及多个 Button 控件用于输入数字和运算符。
4. 在 Activity 中获取布局文件中的控件,并为 Button 控件添加点击事件监听器。
5. 在事件监听器中根据用户输入的数字和运算符进行计算,然后更新 TextView 显示的结果。
下面是一个简单的示例代码,您可以参考它来实现一个简单的计算器:
MainActivity.java
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tvResult;
private Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
private Button btnAdd, btnSub, btnMul, btnDiv, btnClear, btnEqual;
private String num1 = "";
private String num2 = "";
private String operator = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvResult = findViewById(R.id.tv_result);
btn0 = findViewById(R.id.btn_0);
btn1 = findViewById(R.id.btn_1);
btn2 = findViewById(R.id.btn_2);
btn3 = findViewById(R.id.btn_3);
btn4 = findViewById(R.id.btn_4);
btn5 = findViewById(R.id.btn_5);
btn6 = findViewById(R.id.btn_6);
btn7 = findViewById(R.id.btn_7);
btn8 = findViewById(R.id.btn_8);
btn9 = findViewById(R.id.btn_9);
btnAdd = findViewById(R.id.btn_add);
btnSub = findViewById(R.id.btn_sub);
btnMul = findViewById(R.id.btn_mul);
btnDiv = findViewById(R.id.btn_div);
btnClear = findViewById(R.id.btn_clear);
btnEqual = findViewById(R.id.btn_equal);
btn0.setOnClickListener(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);
btnClear.setOnClickListener(this);
btnEqual.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_0:
case R.id.btn_1:
case R.id.btn_2:
case R.id.btn_3:
case R.id.btn_4:
case R.id.btn_5:
case R.id.btn_6:
case R.id.btn_7:
case R.id.btn_8:
case R.id.btn_9:
String num = ((Button) v).getText().toString();
if (operator.isEmpty()) {
num1 += num;
tvResult.setText(num1);
} else {
num2 += num;
tvResult.setText(num2);
}
break;
case R.id.btn_add:
case R.id.btn_sub:
case R.id.btn_mul:
case R.id.btn_div:
operator = ((Button) v).getText().toString();
break;
case R.id.btn_clear:
num1 = "";
num2 = "";
operator = "";
tvResult.setText("");
break;
case R.id.btn_equal:
if (!num1.isEmpty() && !num2.isEmpty() && !operator.isEmpty()) {
double result = calculate(Double.parseDouble(num1), Double.parseDouble(num2), operator);
tvResult.setText(String.valueOf(result));
num1 = String.valueOf(result);
num2 = "";
operator = "";
}
break;
}
}
private double calculate(double num1, double num2, String operator) {
switch (operator) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
if (num2 == 0) {
return Double.NaN;
} else {
return num1 / num2;
}
default:
return Double.NaN;
}
}
}
```
activity_main.xml
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="36sp"
android:textColor="#000000"
android:padding="16dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<Button
android:id="@+id/btn_7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_div"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<Button
android:id="@+id/btn_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_mul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<Button
android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<Button
android:id="@+id/btn_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textSize="24sp"
android:layout_weight="1"
android:background="#FFFFFF"
android:onClick="onClick" />
<Button
android:id="@+id/btn_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
<Button
android:id="@+id/btn_equal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
<Button
android:id="@+id/btn_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:textSize="24sp"
android:layout_weight="1"
android:background="#CCCCCC"
android:onClick="onClick" />
</LinearLayout>
</LinearLayout>
```
这样,一个简单的计算器就完成了。
阅读全文