andriod studio实现简单计算器代码
时间: 2023-07-26 15:03:33 浏览: 152
以下是一个简单的 Android Studio 计算器应用程序的代码:
首先,在 activity_main.xml 文件中添加以下代码:
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.calculator.MainActivity">
<TextView
android:id="@+id/resultTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:gravity="center
相关问题
基于Android Studio 实现简单计算器代码
在Android Studio中实现一个简单的计算器应用,你可以按照以下步骤操作:
1. **新建项目**:打开Android Studio,选择“Start a new Android Studio project”,选择Empty Activity。
2. **界面设计**:
- 使用`ConstraintLayout`或者`LinearLayout`创建UI,包括两个EditText用于输入数字,一个TextView显示当前的操作结果,以及数字按钮、运算符按钮和等于按钮等。
3. **事件处理**:
- 给每个数字和运算符按钮设置OnClickListener,点击时读取EditText的内容,进行相应的计算并更新结果。
```java
Button button0 = findViewById(R.id.button_0);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText display = findViewById(R.id.display);
String currentInput = display.getText().toString();
display.setText(currentInput + "0");
}
});
// 类似地,为其他数字、运算符和等号按钮添加点击事件处理
```
4. **处理加减乘除逻辑**:
- 创建一个Calculator类,里面包含一些方法如add(), subtract(), multiply(), divide(),它们接收两个double类型的值作为参数,并返回结果。
5. **整合UI和逻辑**:
- 在按钮的点击事件处理器里,根据点击的按钮内容,判断是数字还是运算符,然后调用对应的Calculator类方法进行计算,最后更新显示结果。
6. **测试应用**:
- 在模拟器或真机上运行应用程序,检查各个功能是否正常工作。
```java
private void doMath(String operator, double num1, double num2) {
switch (operator) {
case "+":
result = Calculator.add(num1, num2);
break;
case "-":
result = Calculator.subtract(num1, num2);
break;
// 添加其他运算符的case...
}
display.setText(String.valueOf(result));
}
// 示例:当遇到等号按钮,将用户输入的字符串分割成两部分,并计算结果
public void onEqualButtonClick(View view) {
String input = display.getText().toString();
// 分割字符串,提取数字和运算符,调用doMath方法
}
```
Android studio实现科学计算器代码
以下是一个简单的科学计算器的 Android Studio 代码实现示例:
1. 首先,在 XML 布局文件中创建一个包含所有按钮的界面。
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:inputType="text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_sin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="sin" />
<Button
android:id="@+id/button_cos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="cos" />
<Button
android:id="@+id/button_tan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tan" />
<Button
android:id="@+id/button_pow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="^" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7" />
<Button
android:id="@+id/button_8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8" />
<Button
android:id="@+id/button_9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9" />
<Button
android:id="@+id/button_divide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4" />
<Button
android:id="@+id/button_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5" />
<Button
android:id="@+id/button_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6" />
<Button
android:id="@+id/button_multiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1" />
<Button
android:id="@+id/button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2" />
<Button
android:id="@+id/button_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3" />
<Button
android:id="@+id/button_minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<Button
android:id="@+id/button_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C" />
<Button
android:id="@+id/button_dot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="." />
<Button
android:id="@+id/button_plus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+" />
</LinearLayout>
<Button
android:id="@+id/button_equal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="=" />
</LinearLayout>
```
2. 在 Activity 中实现所有按钮的点击事件并处理计算逻辑。
```java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText editText;
private double value1 = Double.NaN;
private double value2;
private static final String ADDITION = "+";
private static final String SUBTRACTION = "-";
private static final String MULTIPLICATION = "*";
private static final String DIVISION = "/";
private String CURRENT_ACTION;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
Button button0 = findViewById(R.id.button_0);
Button button1 = findViewById(R.id.button_1);
Button button2 = findViewById(R.id.button_2);
Button button3 = findViewById(R.id.button_3);
Button button4 = findViewById(R.id.button_4);
Button button5 = findViewById(R.id.button_5);
Button button6 = findViewById(R.id.button_6);
Button button7 = findViewById(R.id.button_7);
Button button8 = findViewById(R.id.button_8);
Button button9 = findViewById(R.id.button_9);
Button buttonDot = findViewById(R.id.button_dot);
Button buttonClear = findViewById(R.id.button_clear);
Button buttonPlus = findViewById(R.id.button_plus);
Button buttonMinus = findViewById(R.id.button_minus);
Button buttonMultiply = findViewById(R.id.button_multiply);
Button buttonDivide = findViewById(R.id.button_divide);
Button buttonEqual = findViewById(R.id.button_equal);
Button buttonSin = findViewById(R.id.button_sin);
Button buttonCos = findViewById(R.id.button_cos);
Button buttonTan = findViewById(R.id.button_tan);
Button buttonPow = findViewById(R.id.button_pow);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "1");
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "2");
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "3");
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "4");
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "5");
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "6");
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "7");
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "8");
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "9");
}
});
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + "0");
}
});
buttonDot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(editText.getText() + ".");
}
});
buttonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
value1 = Double.NaN;
value2 = Double.NaN;
editText.setText("");
}
});
buttonPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
CURRENT_ACTION = ADDITION;
editText.setText(String.valueOf(value1) + "+");
}
});
buttonMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
CURRENT_ACTION = SUBTRACTION;
editText.setText(String.valueOf(value1) + "-");
}
});
buttonMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
CURRENT_ACTION = MULTIPLICATION;
editText.setText(String.valueOf(value1) + "*");
}
});
buttonDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
CURRENT_ACTION = DIVISION;
editText.setText(String.valueOf(value1) + "/");
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
editText.setText(String.valueOf(value1));
value1 = Double.NaN;
}
});
buttonSin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double value = Double.parseDouble(editText.getText().toString());
double result = Math.sin(Math.toRadians(value));
editText.setText(String.valueOf(result));
}
});
buttonCos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double value = Double.parseDouble(editText.getText().toString());
double result = Math.cos(Math.toRadians(value));
editText.setText(String.valueOf(result));
}
});
buttonTan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double value = Double.parseDouble(editText.getText().toString());
double result = Math.tan(Math.toRadians(value));
editText.setText(String.valueOf(result));
}
});
buttonPow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
computeCalculation();
CURRENT_ACTION = "pow";
editText.setText(String.valueOf(value1) + "^");
}
});
}
private void computeCalculation() {
if (!Double.isNaN(value1)) {
value2 = Double.parseDouble(editText.getText().toString());
if (CURRENT_ACTION == ADDITION)
value1 = this.value1 + value2;
else if (CURRENT_ACTION == SUBTRACTION)
value1 = this.value1 - value2;
else if (CURRENT_ACTION == MULTIPLICATION)
value1 = this.value1 * value2;
else if (CURRENT_ACTION == DIVISION)
value1 = this.value1 / value2;
else if (CURRENT_ACTION == "pow")
value1 = Math.pow(value1, value2);
} else {
try {
value1 = Double.parseDouble(editText.getText().toString());
} catch (Exception e) {
}
}
}
}
```
这样,你就可以运行该应用程序并使用该科学计算器进行计算了。
阅读全文