安卓开发计算器java代码实现
时间: 2023-06-22 14:21:49 浏览: 77
以下是一个简单的安卓计算器的Java代码实现,可以进行加、减、乘、除四则运算:
```java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements View.OnClickListener {
private EditText et_input;
private Button btn_clear, btn_divide, btn_multiply, btn_minus, btn_plus, btn_equal, btn_dot, btn_0, btn_1,
btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9;
private boolean isClear; // 标记是否清空输入框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_input = findViewById(R.id.et_input);
btn_clear = findViewById(R.id.btn_clear);
btn_divide = findViewById(R.id.btn_divide);
btn_multiply = findViewById(R.id.btn_multiply);
btn_minus = findViewById(R.id.btn_minus);
btn_plus = findViewById(R.id.btn_plus);
btn_equal = findViewById(R.id.btn_equal);
btn_dot = findViewById(R.id.btn_dot);
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_clear.setOnClickListener(this);
btn_divide.setOnClickListener(this);
btn_multiply.setOnClickListener(this);
btn_minus.setOnClickListener(this);
btn_plus.setOnClickListener(this);
btn_equal.setOnClickListener(this);
btn_dot.setOnClickListener(this);
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);
}
@Override
public void onClick(View v) {
String str = et_input.getText().toString();
switch (v.getId()) {
case R.id.btn_clear:
et_input.setText("");
break;
case R.id.btn_divide:
case R.id.btn_multiply:
case R.id.btn_minus:
case R.id.btn_plus:
if (!isClear) {
et_input.setText(str + ((Button) v).getText());
isClear = true;
}
break;
case R.id.btn_equal:
if (!isClear) {
et_input.setText(getResult(str));
isClear = true;
}
break;
case R.id.btn_dot:
if (!isClear && !str.contains(".")) {
et_input.setText(str + ".");
}
break;
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:
et_input.setText(str + ((Button) v).getText());
isClear = false;
break;
}
}
private String getResult(String str) {
String result = "";
if (str.contains("+")) {
String[] nums = str.split("\\+");
result = String.valueOf(Double.parseDouble(nums[0]) + Double.parseDouble(nums[1]));
} else if (str.contains("-")) {
String[] nums = str.split("-");
result = String.valueOf(Double.parseDouble(nums[0]) - Double.parseDouble(nums[1]));
} else if (str.contains("*")) {
String[] nums = str.split("\\*");
result = String.valueOf(Double.parseDouble(nums[0]) * Double.parseDouble(nums[1]));
} else if (str.contains("/")) {
String[] nums = str.split("/");
result = String.valueOf(Double.parseDouble(nums[0]) / Double.parseDouble(nums[1]));
}
return result;
}
}
```
以上代码中,onClick() 方法中处理了按钮的点击事件,getResult() 方法用于计算输入的表达式的结果。需要在布局文件中添加相应的控件,并为按钮设置对应的ID和文本。
阅读全文