android studio 写一个计算器程序
时间: 2023-10-05 07:10:14 浏览: 85
抱歉,作为AI语言模型,我无法编写代码,但我可以提供一些思路和示例代码,帮助您开始编写计算器程序。
思路:
1. 创建一个布局文件,包含一个文本框和多个按钮,每个按钮代表一个数字或运算符。
2. 在MainActivity.java中,将按钮与相应的操作绑定,例如添加setOnClickListener()方法。
3. 在按钮操作中,使用switch语句根据按钮的id执行相应的操作。
4. 使用文本框来显示计算结果。
示例代码:
activity_main.xml:
```
<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">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:hint="0"
android:textAlignment="center"
android:textSize="35sp" />
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editText"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="0"
android:textSize="30sp" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editText"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn0"
android:layout_marginLeft="20dp"
android:text="1"
android:textSize="30sp" />
...
<Button
android:id="@+id/btnPlus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn7"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="+"
android:textSize="30sp" />
<Button
android:id="@+id/btnEqual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnPlus"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="="
android:textSize="30sp" />
</RelativeLayout>
```
MainActivity.java:
```
public class MainActivity extends AppCompatActivity {
EditText editText;
Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btnPlus, btnMinus, btnMultiply, btnDivide, btnClear, btnEqual;
String currentNumber = "";
String currentOperator = "";
int currentResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
btn0 = findViewById(R.id.btn0);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn3 = findViewById(R.id.btn3);
btn4 = findViewById(R.id.btn4);
btn5 = findViewById(R.id.btn5);
btn6 = findViewById(R.id.btn6);
btn7 = findViewById(R.id.btn7);
btn8 = findViewById(R.id.btn8);
btn9 = findViewById(R.id.btn9);
btnPlus = findViewById(R.id.btnPlus);
btnMinus = findViewById(R.id.btnMinus);
btnMultiply = findViewById(R.id.btnMultiply);
btnDivide = findViewById(R.id.btnDivide);
btnClear = findViewById(R.id.btnClear);
btnEqual = findViewById(R.id.btnEqual);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentNumber += "0";
editText.setText(currentNumber);
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentNumber += "1";
editText.setText(currentNumber);
}
});
...
btnPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentOperator = "+";
currentResult = Integer.parseInt(currentNumber);
currentNumber = "";
}
});
btnEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int secondNumber = Integer.parseInt(currentNumber);
int result = 0;
switch (currentOperator) {
case "+":
result = currentResult + secondNumber;
break;
case "-":
result = currentResult - secondNumber;
break;
case "*":
result = currentResult * secondNumber;
break;
case "/":
result = currentResult / secondNumber;
break;
}
editText.setText(String.valueOf(result));
currentNumber = String.valueOf(result);
}
});
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentNumber = "";
currentOperator = "";
currentResult = 0;
editText.setText("0");
}
});
}
}
```
这是一个简单的计算器程序,支持加、减、乘、除四种基本运算,以及清除和计算结果。您可以根据需要添加更多的功能。
阅读全文