这是一个包含了基本数学运算功能的安卓计算器应用源代码包,适用于开发者学习和二次开发。
```java
package package_name;
public class CalculatorActivity {
private String str = ;
private double f, g;
private int c;
private View vi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize UI elements and set click listeners for buttons
Button button0 = findViewById(R.id.button_0);
button0.setOnClickListener(onClickListener);
Button button1 = findViewById(R.id.button_1);
button1.setOnClickListener(onClickListener);
Button button2 = findViewById(R.id.button_2);
button2.setOnClickListener(onClickListener);
// Continue initializing other digits and operation buttons similarly
}
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.button_equal && str != && vi != findViewById(R.id.button_plus) &&
vi != findViewById(R.id.button_minus) && vi != findViewById(R.id.button_multiply)
&& vi != findViewById(R.id.button_divide)) {
g = Double.parseDouble(str);
calculater();
str += f;
} else if (v.getId() == R.id.button_dot && str.equals()) {
str += .;
} else if (v.getId() == R.id.button_plus) { // 加
c = 1;
} else if (v.getId() == R.id.button_minus) { // 减
c = 2;
} else if (v.getId() == R.id.button_multiply) { // 乘
c = 3;
} else if (v.getId() == R.id.button_divide) { // 除
c = 4;
}
str += v.getContentDescription(); // 获取按钮上的描述并添加到字符串中
et.setText(str); // 更新显示的文本
}
};
private void calculater() {
switch (c) {
case 1: f = g + Double.parseDouble(et.getText().toString()); break;
case 2: f = g - Double.parseDouble(et.getText().toString()); break;
case 3: f = g * Double.parseDouble(et.getText().toString()); break;
case 4:
if(Double.parseDouble(et.getText().toString()) == 0) {
et.setText(除数不能为零);
} else {
f = g / Double.parseDouble(et.getText().toString());
}
}
}
}
```
注意:上述代码片段是一个简化版本,假设你已经有一个布局文件(XML)来定义数字和操作符按钮。每个按钮在点击时会触发`onClick()`方法,并执行相应的数学运算或更新显示的字符串。请根据你的实际项目需求调整R.id及其它资源引用。
此外,请确保初始化UI元素如EditText (`et`) 和所有必要的Button,以及为它们设置合适的ID(例如 `button_0`, `button_plus` 等)。上述代码中假设了这些步骤已经完成并且通过点击事件进行了适当的处理。