编写一个Android计算器
时间: 2023-05-27 15:07:48 浏览: 75
由于需要很多代码,此处只提供一个简单的计算器示例,仅供参考。
MainActivity.java:
```java
package com.example.calculator;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private TextView resultTextView;
private String currentNumber = "";
private ArrayList<Float> numbers = new ArrayList<Float>();
private ArrayList<Character> operators = new ArrayList<Character>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = findViewById(R.id.resultTextView);
}
public void buttonClick(View view) {
Button button = (Button) view;
String buttonText = button.getText().toString();
if (buttonText.equals("C")) {
currentNumber = "";
numbers.clear();
operators.clear();
resultTextView.setText("0");
} else if (buttonText.equals("=")) {
if (!currentNumber.equals("")) {
numbers.add(Float.parseFloat(currentNumber));
currentNumber = "";
}
if (numbers.size() >= operators.size()) {
resultTextView.setText("Error");
return;
}
float result = numbers.get(0);
for (int i = 0; i < operators.size(); i++) {
char operator = operators.get(i);
float number = numbers.get(i + 1);
switch (operator) {
case '+':
result += number;
break;
case '-':
result -= number;
break;
case '×':
result *= number;
break;
case '÷':
if (number == 0) {
resultTextView.setText("Error");
return;
}
result /= number;
break;
}
}
resultTextView.setText(String.valueOf(result));
currentNumber = "";
numbers.clear();
operators.clear();
} else if (buttonText.equals("+") || buttonText.equals("-") || buttonText.equals("×") || buttonText.equals("÷")) {
if (!currentNumber.equals("")) {
numbers.add(Float.parseFloat(currentNumber));
currentNumber = "";
}
operators.add(buttonText.charAt(0));
} else {
currentNumber += buttonText;
resultTextView.setText(currentNumber);
}
}
}
```
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/resultTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:padding="16dp"
android:text="0"
android:textAlignment="center"
android:textSize="32sp" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/resultTextView"
android:columnCount="4"
android:rowCount="5"
android:padding="16dp">
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="7"
android:onClick="buttonClick" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_row="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="8"
android:onClick="buttonClick" />
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="9"
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonDivide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_row="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="÷"
android:onClick="buttonClick" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="4"
android:onClick="buttonClick" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="5"
android:onClick="buttonClick" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="6"
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonMultiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="×"
android:onClick="buttonClick" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="1"
android:onClick="buttonClick" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="2"
android:onClick="buttonClick" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="3"
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonSubtract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="-"
android:onClick="buttonClick" />
<Button
android:id="@+id/button0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="0"
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonDot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="."
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonEquals"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="="
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="+"
android:onClick="buttonClick" />
<Button
android:id="@+id/buttonClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="4"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="C"
android:onClick="buttonClick" />
</GridLayout>
</RelativeLayout>
```