用多个Activity实现分别实现加、减、乘、除的计算器代码
时间: 2023-12-15 22:56:41 浏览: 14
好的,以下是用多个Activity实现加、减、乘、除的计算器代码:
MainActivity.java:
```
public class MainActivity extends AppCompatActivity {
private EditText etNum1, etNum2;
private Button btnAdd, btnSubtract, btnMultiply, btnDivide;
@Override
protected void onCreate(Bundle savedInstanceState
相关问题
android实现一个简易多功能计算器代码和布局文件
以下是一个简单的 Android 计算器的布局文件和代码:
layout/activity_main.xml
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:padding="16dp"
android:gravity="right"
android:textColor="@android:color/black" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_clear"
android:text="C"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_divide"
android:text="/"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_multiply"
android:text="*"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_minus"
android:text="-"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_7"
android:text="7"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_8"
android:text="8"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_9"
android:text="9"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_plus"
android:text="+"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_4"
android:text="4"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_5"
android:text="5"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_6"
android:text="6"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_equals"
android:text="="
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_1"
android:text="1"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_2"
android:text="2"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_3"
android:text="3"
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_decimal"
android:text="."
android:textSize="24sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/btn_0"
android:text="0"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
```
Java/MainActivity.java
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tvResult;
private Button btnClear, btnDivide, btnMultiply, btnMinus, btnPlus, btnEquals, btnDecimal;
private Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
private String currentNumber = "";
private String operation = "";
private double result = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvResult = findViewById(R.id.tv_result);
btnClear = findViewById(R.id.btn_clear);
btnDivide = findViewById(R.id.btn_divide);
btnMultiply = findViewById(R.id.btn_multiply);
btnMinus = findViewById(R.id.btn_minus);
btnPlus = findViewById(R.id.btn_plus);
btnEquals = findViewById(R.id.btn_equals);
btnDecimal = findViewById(R.id.btn_decimal);
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);
btnClear.setOnClickListener(this);
btnDivide.setOnClickListener(this);
btnMultiply.setOnClickListener(this);
btnMinus.setOnClickListener(this);
btnPlus.setOnClickListener(this);
btnEquals.setOnClickListener(this);
btnDecimal.setOnClickListener(this);
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);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_clear:
currentNumber = "";
operation = "";
result = 0.0;
tvResult.setText("");
break;
case R.id.btn_divide:
performOperation("/");
break;
case R.id.btn_multiply:
performOperation("*");
break;
case R.id.btn_minus:
performOperation("-");
break;
case R.id.btn_plus:
performOperation("+");
break;
case R.id.btn_equals:
calculateResult();
break;
case R.id.btn_decimal:
if (!currentNumber.contains(".")) {
currentNumber += ".";
}
tvResult.setText(currentNumber);
break;
case R.id.btn_0:
appendNumber("0");
break;
case R.id.btn_1:
appendNumber("1");
break;
case R.id.btn_2:
appendNumber("2");
break;
case R.id.btn_3:
appendNumber("3");
break;
case R.id.btn_4:
appendNumber("4");
break;
case R.id.btn_5:
appendNumber("5");
break;
case R.id.btn_6:
appendNumber("6");
break;
case R.id.btn_7:
appendNumber("7");
break;
case R.id.btn_8:
appendNumber("8");
break;
case R.id.btn_9:
appendNumber("9");
break;
}
}
private void appendNumber(String number) {
currentNumber += number;
tvResult.setText(currentNumber);
}
private void performOperation(String op) {
if (operation.isEmpty()) {
result = Double.parseDouble(currentNumber);
operation = op;
currentNumber = "";
} else {
calculateResult();
operation = op;
}
}
private void calculateResult() {
if (operation.isEmpty()) {
return;
}
double secondNumber = Double.parseDouble(currentNumber);
switch (operation) {
case "+":
result += secondNumber;
break;
case "-":
result -= secondNumber;
break;
case "*":
result *= secondNumber;
break;
case "/":
result /= secondNumber;
break;
}
currentNumber = "";
operation = "";
tvResult.setText(String.valueOf(result));
}
}
```
android studio实现计算器的加减乘除、乘方、开方
首先,在 Android Studio 中创建一个新项目,然后在布局文件中添加一个 TextView 和多个 Button,以实现计算器的界面。
接下来,在 MainActivity.java 中编写代码来实现计算器的功能。以下是一个简单的实现示例:
```java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.text.DecimalFormat;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView mDisplayText;
private Button mButton0, mButton1, mButton2, mButton3, mButton4, mButton5, mButton6, mButton7, mButton8, mButton9;
private Button mButtonPlus, mButtonMinus, mButtonMultiply, mButtonDivide, mButtonPower, mButtonSqrt, mButtonEqual, mButtonClear;
private String mNumber1 = "", mNumber2 = "", mOperator = "";
private DecimalFormat mDecimalFormat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDisplayText = findViewById(R.id.display_text);
mButton0 = findViewById(R.id.button_0);
mButton1 = findViewById(R.id.button_1);
mButton2 = findViewById(R.id.button_2);
mButton3 = findViewById(R.id.button_3);
mButton4 = findViewById(R.id.button_4);
mButton5 = findViewById(R.id.button_5);
mButton6 = findViewById(R.id.button_6);
mButton7 = findViewById(R.id.button_7);
mButton8 = findViewById(R.id.button_8);
mButton9 = findViewById(R.id.button_9);
mButtonPlus = findViewById(R.id.button_plus);
mButtonMinus = findViewById(R.id.button_minus);
mButtonMultiply = findViewById(R.id.button_multiply);
mButtonDivide = findViewById(R.id.button_divide);
mButtonPower = findViewById(R.id.button_power);
mButtonSqrt = findViewById(R.id.button_sqrt);
mButtonEqual = findViewById(R.id.button_equal);
mButtonClear = findViewById(R.id.button_clear);
mDecimalFormat = new DecimalFormat("#.##########");
mButton0.setOnClickListener(this);
mButton1.setOnClickListener(this);
mButton2.setOnClickListener(this);
mButton3.setOnClickListener(this);
mButton4.setOnClickListener(this);
mButton5.setOnClickListener(this);
mButton6.setOnClickListener(this);
mButton7.setOnClickListener(this);
mButton8.setOnClickListener(this);
mButton9.setOnClickListener(this);
mButtonPlus.setOnClickListener(this);
mButtonMinus.setOnClickListener(this);
mButtonMultiply.setOnClickListener(this);
mButtonDivide.setOnClickListener(this);
mButtonPower.setOnClickListener(this);
mButtonSqrt.setOnClickListener(this);
mButtonEqual.setOnClickListener(this);
mButtonClear.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_0:
onNumberClicked("0");
break;
case R.id.button_1:
onNumberClicked("1");
break;
case R.id.button_2:
onNumberClicked("2");
break;
case R.id.button_3:
onNumberClicked("3");
break;
case R.id.button_4:
onNumberClicked("4");
break;
case R.id.button_5:
onNumberClicked("5");
break;
case R.id.button_6:
onNumberClicked("6");
break;
case R.id.button_7:
onNumberClicked("7");
break;
case R.id.button_8:
onNumberClicked("8");
break;
case R.id.button_9:
onNumberClicked("9");
break;
case R.id.button_plus:
onOperatorClicked("+");
break;
case R.id.button_minus:
onOperatorClicked("-");
break;
case R.id.button_multiply:
onOperatorClicked("*");
break;
case R.id.button_divide:
onOperatorClicked("/");
break;
case R.id.button_power:
onOperatorClicked("^");
break;
case R.id.button_sqrt:
onOperatorClicked("sqrt");
break;
case R.id.button_equal:
onEqualClicked();
break;
case R.id.button_clear:
onClearClicked();
break;
}
}
private void onNumberClicked(String number) {
if (mOperator.isEmpty()) {
mNumber1 += number;
mDisplayText.setText(mNumber1);
} else {
mNumber2 += number;
mDisplayText.setText(mNumber2);
}
}
private void onOperatorClicked(String operator) {
if (!mNumber1.isEmpty() && mNumber2.isEmpty()) {
mOperator = operator;
mDisplayText.setText(mNumber1 + " " + operator + " ");
}
}
private void onEqualClicked() {
double result = 0.0;
if (!mNumber1.isEmpty() && !mNumber2.isEmpty()) {
double num1 = Double.parseDouble(mNumber1);
double num2 = Double.parseDouble(mNumber2);
switch (mOperator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "^":
result = Math.pow(num1, num2);
break;
}
mDisplayText.setText(mDecimalFormat.format(result));
mNumber1 = mDecimalFormat.format(result);
mNumber2 = "";
mOperator = "";
} else if (!mNumber1.isEmpty() && mNumber2.isEmpty() && mOperator.equals("sqrt")) {
double num1 = Double.parseDouble(mNumber1);
result = Math.sqrt(num1);
mDisplayText.setText(mDecimalFormat.format(result));
mNumber1 = mDecimalFormat.format(result);
mNumber2 = "";
mOperator = "";
}
}
private void onClearClicked() {
mNumber1 = "";
mNumber2 = "";
mOperator = "";
mDisplayText.setText("");
}
}
```
在这个示例代码中,我们实现了加、减、乘、除、乘方、开方等基本算术运算,并且使用 DecimalFormat 对结果进行格式化。当用户点击数字按钮时,我们将数字添加到当前操作数中;当用户点击操作符按钮时,我们将当前操作数视为第一个操作数,并将操作符保存;当用户点击等号按钮时,我们计算结果并在 TextView 中显示;当用户点击清除按钮时,我们将所有操作数和操作符都重置为初始状态。
最后,运行应用程序并测试计算器的功能。