Android studio 计算器怎么做
时间: 2024-03-01 14:50:16 浏览: 110
制作 Android Studio 计算器可以分为以下几个步骤:
1. 创建一个新的 Android Studio 项目,选择空白的活动模板。
2. 在 XML 布局文件中创建计算器的界面元素,例如按钮、文本框等。
3. 在 Java 代码中实现计算器的逻辑运算,例如加、减、乘、除等。
4. 将逻辑运算与界面元素进行绑定,使用户可以通过点击按钮实现计算器的操作。
以下是一个简单的计算器示例代码,可以作为参考:
布局文件 activity_main.xml:
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="0"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:textAlignment="center"
android:layout_alignParentTop="true"/>
<Button
android:id="@+id/btn_1"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="1"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="80dp"
android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/btn_2"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="2"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="80dp"
android:layout_toRightOf="@id/btn_1"/>
<Button
android:id="@+id/btn_3"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="3"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="80dp"
android:layout_toRightOf="@id/btn_2"/>
<Button
android:id="@+id/btn_add"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="+"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="80dp"
android:layout_toRightOf="@id/btn_3"/>
<Button
android:id="@+id/btn_4"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="4"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_1"
android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/btn_5"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="5"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_2"
android:layout_toRightOf="@id/btn_4"/>
<Button
android:id="@+id/btn_6"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="6"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_3"
android:layout_toRightOf="@id/btn_5"/>
<Button
android:id="@+id/btn_sub"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="-"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_6"
android:layout_below="@id/btn_add"/>
<Button
android:id="@+id/btn_7"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="7"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_4"
android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/btn_8"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="8"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_5"
android:layout_toRightOf="@id/btn_7"/>
<Button
android:id="@+id/btn_9"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="9"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_6"
android:layout_toRightOf="@id/btn_8"/>
<Button
android:id="@+id/btn_mul"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="*"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_9"
android:layout_below="@id/btn_sub"/>
<Button
android:id="@+id/btn_clear"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="C"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_7"
android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/btn_0"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="0"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_8"
android:layout_toRightOf="@id/btn_clear"/>
<Button
android:id="@+id/btn_equal"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="="
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_below="@id/btn_9"
android:layout_toRightOf="@id/btn_0"/>
<Button
android:id="@+id/btn_div"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="/"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_equal"
android:layout_below="@id/btn_mul"/>
</RelativeLayout>
```
Java 代码 MainActivity.java:
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView result;
private Button btn_0, btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9;
private Button btn_add, btn_sub, btn_mul, btn_div, btn_clear, btn_equal;
private String operator = ""; // 保存当前的操作符
private boolean flag_clear = true; // true 表示需要清空显示区, false 表示不需要清空
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
result = findViewById(R.id.result);
btn_0 = findViewById(R.id.btn_0);
btn_1 = findViewById(R.id.btn_1);
btn_2 = findViewById(R.id.btn_2);
btn_3 = findViewById(R.id.btn_3);
btn_4 = findViewById(R.id.btn_4);
btn_5 = findViewById(R.id.btn_5);
btn_6 = findViewById(R.id.btn_6);
btn_7 = findViewById(R.id.btn_7);
btn_8 = findViewById(R.id.btn_8);
btn_9 = findViewById(R.id.btn_9);
btn_add = findViewById(R.id.btn_add);
btn_sub = findViewById(R.id.btn_sub);
btn_mul = findViewById(R.id.btn_mul);
btn_div = findViewById(R.id.btn_div);
btn_clear = findViewById(R.id.btn_clear);
btn_equal = findViewById(R.id.btn_equal);
btn_0.setOnClickListener(this);
btn_1.setOnClickListener(this);
btn_2.setOnClickListener(this);
btn_3.setOnClickListener(this);
btn_4.setOnClickListener(this);
btn_5.setOnClickListener(this);
btn_6.setOnClickListener(this);
btn_7.setOnClickListener(this);
btn_8.setOnClickListener(this);
btn_9.setOnClickListener(this);
btn_add.setOnClickListener(this);
btn_sub.setOnClickListener(this);
btn_mul.setOnClickListener(this);
btn_div.setOnClickListener(this);
btn_clear.setOnClickListener(this);
btn_equal.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_0:
case R.id.btn_1:
case R.id.btn_2:
case R.id.btn_3:
case R.id.btn_4:
case R.id.btn_5:
case R.id.btn_6:
case R.id.btn_7:
case R.id.btn_8:
case R.id.btn_9:
if (flag_clear) {
result.setText("");
flag_clear = false;
}
result.append(((Button) v).getText());
break;
case R.id.btn_add:
case R.id.btn_sub:
case R.id.btn_mul:
case R.id.btn_div:
operator = ((Button) v).getText().toString();
flag_clear = true;
break;
case R.id.btn_clear:
result.setText("0");
operator = "";
flag_clear = true;
break;
case R.id.btn_equal:
calculate();
flag_clear = true;
break;
default:
break;
}
}
private void calculate() {
String expression = result.getText().toString();
if (expression.equals("") || operator.equals("")) {
return;
}
if (!expression.contains(operator)) {
return;
}
String[] array = expression.split("\\" + operator);
if (array.length != 2) {
return;
}
double num1 = Double.parseDouble(array[0]);
double num2 = Double.parseDouble(array[1]);
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 == 0) {
Toast.makeText(this, "除数不能为零", Toast.LENGTH_SHORT).show();
return;
}
result = num1 / num2;
break;
default:
break;
}
this.result.setText(String.valueOf(result));
}
}
```
以上代码仅作为参考,实际开发中还需根据需求进行扩展和优化。
阅读全文