android student写一个计算器
时间: 2023-08-04 21:35:06 浏览: 51
好的,以下是一个简单的 Android 计算器示例代码:
1. 创建 XML 布局文件 activity_main.xml,添加以下代码:
```
<?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"
android:padding="16dp">
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="#EFEFEF"
android:gravity="end"
android:maxLines="1"
android:padding="16dp"
android:textSize="32sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1"
android:textSize="24sp" />
<Button
android:id="@+id/btn_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2"
android:textSize="24sp" />
<Button
android:id="@+id/btn_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3"
android:textSize="24sp" />
<Button
android:id="@+id/btn_add"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+"
android:textSize="24sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4"
android:textSize="24sp" />
<Button
android:id="@+id/btn_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5"
android:textSize="24sp" />
<Button
android:id="@+id/btn_6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6"
android:textSize="24sp" />
<Button
android:id="@+id/btn_subtract"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-"
android:textSize="24sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7"
android:textSize="24sp" />
<Button
android:id="@+id/btn_8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8"
android:textSize="24sp" />
<Button
android:id="@+id/btn_9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9"
android:textSize="24sp" />
<Button
android:id="@+id/btn_multiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*"
android:textSize="24sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C"
android:textSize="24sp" />
<Button
android:id="@+id/btn_0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0"
android:textSize="24sp" />
<Button
android:id="@+id/btn_equals"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="="
android:textSize="24sp" />
<Button
android:id="@+id/btn_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/"
android:textSize="24sp" />
</LinearLayout>
</LinearLayout>
```
2. 在 MainActivity.java 中添加以下代码:
```
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView tvResult;
private String currentNumber = "";
private String lastOperation = "";
private String operand1 = "";
private String operand2 = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvResult = findViewById(R.id.tv_result);
Button btn0 = findViewById(R.id.btn_0);
Button btn1 = findViewById(R.id.btn_1);
Button btn2 = findViewById(R.id.btn_2);
Button btn3 = findViewById(R.id.btn_3);
Button btn4 = findViewById(R.id.btn_4);
Button btn5 = findViewById(R.id.btn_5);
Button btn6 = findViewById(R.id.btn_6);
Button btn7 = findViewById(R.id.btn_7);
Button btn8 = findViewById(R.id.btn_8);
Button btn9 = findViewById(R.id.btn_9);
Button btnClear = findViewById(R.id.btn_clear);
Button btnAdd = findViewById(R.id.btn_add);
Button btnSubtract = findViewById(R.id.btn_subtract);
Button btnMultiply = findViewById(R.id.btn_multiply);
Button btnDivide = findViewById(R.id.btn_divide);
Button btnEquals = findViewById(R.id.btn_equals);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("0");
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("1");
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("2");
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("3");
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("4");
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("5");
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("6");
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("7");
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("8");
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleNumberClick("9");
}
});
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clear();
}
});
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleOperationClick("+");
}
});
btnSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleOperationClick("-");
}
});
btnMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleOperationClick("*");
}
});
btnDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleOperationClick("/");
}
});
btnEquals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleEqualsClick();
}
});
}
private void handleNumberClick(String number) {
currentNumber += number;
tvResult.setText(currentNumber);
}
private void handleOperationClick(String operation) {
if (!currentNumber.isEmpty()) {
operand1 = currentNumber;
currentNumber = "";
lastOperation = operation;
}
}
private void handleEqualsClick() {
if (!currentNumber.isEmpty()) {
operand2 = currentNumber;
currentNumber = "";
}
if (!operand1.isEmpty() && !operand2.isEmpty()) {
double num1 = Double.parseDouble(operand1);
double num2 = Double.parseDouble(operand2);
double result = 0;
switch (lastOperation) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
operand1 = String.valueOf(result);
operand2 = "";
lastOperation = "";
currentNumber = operand1;
tvResult.setText(currentNumber);
}
}
private void clear() {
currentNumber = "";
operand1 = "";
operand2 = "";
lastOperation = "";
tvResult.setText("");
}
}
```
这个计算器支持加、减、乘、除四种基本运算,以及清空和等于操作。希望这能帮到你!