andriod studio实现计算器代码
时间: 2023-09-15 15:17:57 浏览: 43
以下是一个简单的Android Studio计算器应用的代码示例:
XML布局文件:activity_main.xml
```
<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/display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="@android:color/darker_gray"
android:padding="8dp"
android:textColor="@android:color/white"
android:textSize="24sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="4">
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7"
android:textSize="24sp" />
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8"
android:textSize="24sp" />
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9"
android:textSize="24sp" />
<Button
android:id="@+id/button_divide"
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"
android:weightSum="4">
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4"
android:textSize="24sp" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5"
android:textSize="24sp" />
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6"
android:textSize="24sp" />
<Button
android:id="@+id/button_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"
android:weightSum="4">
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1"
android:textSize="24sp" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2"
android:textSize="24sp" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3"
android:textSize="24sp" />
<Button
android:id="@+id/button_minus"
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"
android:weightSum="4">
<Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C"
android:textSize="24sp" />
<Button
android:id="@+id/button0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0"
android:textSize="24sp" />
<Button
android:id="@+id/button_dot"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="."
android:textSize="24sp" />
<Button
android:id="@+id/button_plus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+"
android:textSize="24sp" />
</LinearLayout>
<Button
android:id="@+id/button_equals"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="="
android:textSize="24sp" />
</LinearLayout>
```
Java代码文件:MainActivity.java
```
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.text.DecimalFormat;
public class MainActivity extends AppCompatActivity {
private TextView display;
private Button button_clear, button_divide, button_multiply, button_minus, button_plus, button_equals,
button_dot, button0, button1, button2, button3, button4, button5, button6, button7, button8, button9;
private String currentNumber = "0";
private String lastOperator = "";
private double result = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = findViewById(R.id.display);
button_clear = findViewById(R.id.button_clear);
button_divide = findViewById(R.id.button_divide);
button_multiply = findViewById(R.id.button_multiply);
button_minus = findViewById(R.id.button_minus);
button_plus = findViewById(R.id.button_plus);
button_equals = findViewById(R.id.button_equals);
button_dot = findViewById(R.id.button_dot);
button0 = findViewById(R.id.button0);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
button4 = findViewById(R.id.button4);
button5 = findViewById(R.id.button5);
button6 = findViewById(R.id.button6);
button7 = findViewById(R.id.button7);
button8 = findViewById(R.id.button8);
button9 = findViewById(R.id.button9);
button_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clear();
}
});
button_divide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setOperator("/");
}
});
button_multiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setOperator("*");
}
});
button_minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setOperator("-");
}
});
button_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setOperator("+");
}
});
button_equals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate();
}
});
button_dot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.contains(".")) {
currentNumber += ".";
display.setText(currentNumber);
}
}
});
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(0);
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(1);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(2);
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(3);
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(4);
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(5);
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(6);
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(7);
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(8);
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDigit(9);
}
});
}
private void clear() {
currentNumber = "0";
lastOperator = "";
result = 0;
display.setText(currentNumber);
}
private void setOperator(String operator) {
if (lastOperator.equals("")) {
result = Double.parseDouble(currentNumber);
} else {
calculate();
}
lastOperator = operator;
currentNumber = "0";
}
private void addDigit(int digit) {
if (currentNumber.equals("0")) {
currentNumber = String.valueOf(digit);
} else {
currentNumber += String.valueOf(digit);
}
display.setText(currentNumber);
}
private void calculate() {
double current = Double.parseDouble(currentNumber);
switch (lastOperator) {
case "+":
result += current;
break;
case "-":
result -= current;
break;
case "*":
result *= current;
break;
case "/":
result /= current;
break;
}
DecimalFormat decimalFormat = new DecimalFormat("#.##########");
currentNumber = decimalFormat.format(result);
display.setText(currentNumber);
lastOperator = "";
}
}
```
这个计算器应用可以进行简单的加、减、乘、除运算,支持小数点输入和清零操作。