在Android studio中编写多位数相加减的完整代码计算器,用numberCLick,
时间: 2024-02-18 22:05:28 浏览: 90
Android项目基于Android studio开发的计算器软件
5星 · 资源好评率100%
好的,下面是一个简单的 Android Studio 中的计算器代码示例,可以进行多位数的加减法运算:
首先,在 XML 文件中创建 UI 元素,包括数字和操作符按钮,以及文本框用于显示结果:
```xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="0"
android:textSize="24sp"
android:gravity="end"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="5"
android:columnCount="4">
<Button
android:id="@+id/btn_1"
android:layout_row="2"
android:layout_column="0"
android:text="1"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_2"
android:layout_row="2"
android:layout_column="1"
android:text="2"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_3"
android:layout_row="2"
android:layout_column="2"
android:text="3"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_add"
android:layout_row="2"
android:layout_column="3"
android:text="+"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_4"
android:layout_row="3"
android:layout_column="0"
android:text="4"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_5"
android:layout_row="3"
android:layout_column="1"
android:text="5"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_6"
android:layout_row="3"
android:layout_column="2"
android:text="6"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_subtract"
android:layout_row="3"
android:layout_column="3"
android:text="-"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_7"
android:layout_row="4"
android:layout_column="0"
android:text="7"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_8"
android:layout_row="4"
android:layout_column="1"
android:text="8"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_9"
android:layout_row="4"
android:layout_column="2"
android:text="9"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_multiply"
android:layout_row="4"
android:layout_column="3"
android:text="*"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_clear"
android:layout_row="5"
android:layout_column="0"
android:layout_columnSpan="2"
android:text="C"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_0"
android:layout_row="5"
android:layout_column="2"
android:text="0"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_equals"
android:layout_row="5"
android:layout_column="3"
android:text="="
android:textSize="24sp"/>
<Button
android:id="@+id/btn_divide"
android:layout_row="1"
android:layout_column="3"
android:text="/"
android:textSize="24sp"/>
</GridLayout>
</LinearLayout>
```
接下来,在 java 文件中实现按钮的点击事件和计算逻辑:
```java
public class MainActivity extends AppCompatActivity {
private EditText 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_subtract, btn_multiply, btn_divide, btn_clear, btn_equals;
private double val1 = Double.NaN;
private double val2;
private char ACTION;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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_subtract = findViewById(R.id.btn_subtract);
btn_multiply = findViewById(R.id.btn_multiply);
btn_divide = findViewById(R.id.btn_divide);
btn_clear = findViewById(R.id.btn_clear);
btn_equals = findViewById(R.id.btn_equals);
btn_0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "0");
}
});
btn_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "1");
}
});
btn_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "2");
}
});
btn_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "3");
}
});
btn_4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "4");
}
});
btn_5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "5");
}
});
btn_6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "6");
}
});
btn_7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "7");
}
});
btn_8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "8");
}
});
btn_9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText(result.getText() + "9");
}
});
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '+';
result.setText(null);
}
});
btn_subtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '-';
result.setText(null);
}
});
btn_multiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '*';
result.setText(null);
}
});
btn_divide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '/';
result.setText(null);
}
});
btn_equals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '=';
result.setText(String.valueOf(val1));
val1 = Double.NaN;
}
});
btn_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
val1 = Double.NaN;
val2 = Double.NaN;
result.setText(null);
}
});
}
private void compute() {
if (!Double.isNaN(val1)) {
val2 = Double.parseDouble(result.getText().toString());
switch (ACTION) {
case '+':
val1 = val1 + val2;
break;
case '-':
val1 = val1 - val2;
break;
case '*':
val1 = val1 * val2;
break;
case '/':
val1 = val1 / val2;
break;
case '=':
break;
}
} else {
val1 = Double.parseDouble(result.getText().toString());
}
}
}
```
这个代码示例中,我们首先在 `onCreate` 方法中获取 UI 元素的引用,并为每个按钮添加一个点击事件监听器。每个数字按钮单击时,将相应数字添加到 EditText 中。每个操作符按钮单击时,调用 `compute()` 方法计算结果,并将计算结果保存到 `val1` 中,以便后续计算。最后,按下等于号按钮时,调用 `compute()` 方法计算最终结果,并将结果显示在 EditText 中。
这个计算器代码示例可以进行多位数的加减法运算,并支持清空操作。你可以根据自己的需求和实际情况进行修改和完善。
阅读全文