在Android studio中设计并实现一个简单的计算器
时间: 2024-05-04 11:22:42 浏览: 97
好的,我可以为您提供一些基本的步骤和代码片段来实现一个简单的计算器。
步骤:
1. 打开Android Studio,创建一个新项目。
2. 在项目中创建一个新的Activity,并在布局文件中添加一些按钮和显示结果的TextView。
3. 在MainActivity.java文件中,获取按钮和TextView的引用,并为每个按钮设置一个点击侦听器。
4. 在点击事件监听器中,使用switch语句根据按钮的标识符执行相应的操作。
5. 根据用户输入的数字和运算符,计算结果并将其显示在TextView中。
以下是一些示例代码,帮助您开始编写您的计算器应用程序:
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">
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:gravity="end"
android:padding="10dp"
android:text="0" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
<Button
android:id="@+id/button_8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:id="@+id/button_9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:id="@+id/button_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
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="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:id="@+id/button_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/button_6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:id="@+id/button_multiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
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="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/button_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:id="@+id/button_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
<Button
android:id="@+id/button_subtract"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C" />
<Button
android:id="@+id/button_0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:id="@+id/button_equal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />
<Button
android:id="@+id/button_add"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
</LinearLayout>
</LinearLayout>
```
MainActivity.java文件:
```
public class MainActivity extends AppCompatActivity {
private TextView resultTextView;
private Button button0, button1, button2, button3, button4, button5, button6, button7, button8, button9;
private Button buttonAdd, buttonSubtract, buttonMultiply, buttonDivide, buttonClear, buttonEqual;
private double num1, num2;
private boolean add, subtract, multiply, divide;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = findViewById(R.id.result);
button0 = findViewById(R.id.button_0);
button1 = findViewById(R.id.button_1);
button2 = findViewById(R.id.button_2);
button3 = findViewById(R.id.button_3);
button4 = findViewById(R.id.button_4);
button5 = findViewById(R.id.button_5);
button6 = findViewById(R.id.button_6);
button7 = findViewById(R.id.button_7);
button8 = findViewById(R.id.button_8);
button9 = findViewById(R.id.button_9);
buttonAdd = findViewById(R.id.button_add);
buttonSubtract = findViewById(R.id.button_subtract);
buttonMultiply = findViewById(R.id.button_multiply);
buttonDivide = findViewById(R.id.button_divide);
buttonClear = findViewById(R.id.button_clear);
buttonEqual = findViewById(R.id.button_equal);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("0");
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("1");
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("2");
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("3");
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("4");
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("5");
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("6");
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("7");
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("8");
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultTextView.append("9");
}
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (resultTextView.getText().toString().equals("")) {
return;
}
num1 = Double.parseDouble(resultTextView.getText().toString());
add = true;
resultTextView.setText("");
}
});
buttonSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (resultTextView.getText().toString().equals("")) {
return;
}
num1 = Double.parseDouble(resultTextView.getText().toString());
subtract = true;
resultTextView.setText("");
}
});
buttonMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (resultTextView.getText().toString().equals("")) {
return;
}
num1 = Double.parseDouble(resultTextView.getText().toString());
multiply = true;
resultTextView.setText("");
}
});
buttonDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (resultTextView.getText().toString().equals("")) {
return;
}
num1 = Double.parseDouble(resultTextView.getText().toString());
divide = true;
resultTextView.setText("");
}
});
buttonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num1 = 0;
num2 = 0;
add = false;
subtract = false;
multiply = false;
divide = false;
resultTextView.setText("");
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (resultTextView.getText().toString().equals("")) {
return;
}
num2 = Double.parseDouble(resultTextView.getText().toString());
if (add) {
resultTextView.setText(Double.toString(num1 + num2));
add = false;
}
if (subtract) {
resultTextView.setText(Double.toString(num1 - num2));
subtract = false;
}
if (multiply) {
resultTextView.setText(Double.toString(num1 * num2));
multiply = false;
}
if (divide) {
resultTextView.setText(Double.toString(num1 / num2));
divide = false;
}
}
});
}
}
```
这是一个基本的计算器应用程序,您可以根据需要添加更多的功能和操作符。希望这能帮助您入门!
阅读全文