安卓计算器app开发的基本原理是通过代码实现一种用户输入数字和运算符,计算器返回计算结果的功能。
下面是一个简单的实现步骤:
1. 创建UI界面,包含数字键盘和运算符键盘。可以使用XML布局文件来实现。
2. 在代码中实现键盘按键的监听,为每个按键设置一个OnClickListener监听器。
3. 当用户按下数字键时,将该数字添加到一个字符串中,表示当前输入的数字。
4. 当用户按下运算符键时,将当前输入的数字转换为浮点型,然后保存该数字和运算符。重置当前输入数字的字符串。
5. 当用户按下等于号时,将最后一个输入的数字转换为浮点型,然后根据保存的运算符进行计算。将计算结果返回给用户,并重置当前输入数字的字符串。
下面是一个代码实现的示例:
```
public class CalculatorActivity extends AppCompatActivity implements OnClickListener {
private TextView resultTextView;
private String currentInput;
private double savedNumber;
private String savedOperator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
// 获取UI界面控件
resultTextView = findViewById(R.id.result_text_view);
// 初始化当前输入数字字符串
currentInput = "";
// 为每个键盘按键设置一个OnClickListener监听器
findViewById(R.id.button_0).setOnClickListener(this);
findViewById(R.id.button_1).setOnClickListener(this);
findViewById(R.id.button_2).setOnClickListener(this);
findViewById(R.id.button_3).setOnClickListener(this);
findViewById(R.id.button_4).setOnClickListener(this);
findViewById(R.id.button_5).setOnClickListener(this);
findViewById(R.id.button_6).setOnClickListener(this);
findViewById(R.id.button_7).setOnClickListener(this);
findViewById(R.id.button_8).setOnClickListener(this);
findViewById(R.id.button_9).setOnClickListener(this);
findViewById(R.id.button_add).setOnClickListener(this);
findViewById(R.id.button_subtract).setOnClickListener(this);
findViewById(R.id.button_multiply).setOnClickListener(this);
findViewById(R.id.button_divide).setOnClickListener(this);
findViewById(R.id.button_equals).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_0:
case R.id.button_1:
case R.id.button_2:
case R.id.button_3:
case R.id.button_4:
case R.id.button_5:
case R.id.button_6:
case R.id.button_7:
case R.id.button_8:
case R.id.button_9:
currentInput += ((Button) view).getText().toString();
resultTextView.setText(currentInput);
break;
case R.id.button_add:
case R.id.button_subtract:
case R.id.button_multiply:
case R.id.button_divide:
savedNumber = Double.parseDouble(currentInput);
savedOperator = ((Button) view).getText().toString();
currentInput = "";
break;
case R.id.button_equals:
double currentNumber = Double.parseDouble(currentInput);
double result = 0;
switch (savedOperator) {
case "+":
result = savedNumber + currentNumber;
break;
case "-":
result = savedNumber - currentNumber;
break;
case "*":
result = savedNumber * currentNumber;
break;
case "/":
result = savedNumber / currentNumber;
break;
}
resultTextView.setText(String.valueOf(result));
currentInput = "";
break;
}
}
}
```
上面的代码实现了一个简单的计算器功能,具有加、减、乘、除的基本功能。同时,我们还可以根据需要添加更多的功能,比如小数点、百分号、清空键等等。