android计算器功能实现
时间: 2023-07-28 15:46:29 浏览: 49
实现一个 Android 计算器需要以下步骤:
1. 创建一个新的 Android 项目,并在 layout 文件夹中创建一个布局文件,用于显示计算器的界面。界面可以包括数字按钮、运算符按钮、清除按钮、等于号按钮和文本框等。
2. 在 MainActivity.java 中编写代码,实现计算器的逻辑功能。可以使用 Java 中的数学运算符和方法来实现计算器的加减乘除等功能。
3. 在 MainActivity.java 中编写代码,实现按钮的点击事件。可以使用 OnClickListener 接口来处理按钮的点击事件。
4. 在 AndroidManifest.xml 文件中添加权限,以允许应用程序访问互联网。
以下是一个简单的 Android 计算器示例代码:
1. 布局文件 activity_main.xml:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/result_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/button_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:id="@+id/button_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
<Button
android:id="@+id/button_add"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:id="@+id/button_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/button_6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:id="@+id/button_subtract"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
<Button
android:id="@+id/button_8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:id="@+id/button_9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:id="@+id/button_multiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="×" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C" />
<Button
android:id="@+id/button_0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:id="@+id/button_equal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />
<Button
android:id="@+id/button_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="÷" />
</LinearLayout>
</LinearLayout>
```
2. MainActivity.java 文件:
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView resultTextView;
private Button button1, button2, button3, button4, button5, button6, button7, button8, button9, button0;
private Button buttonAdd, buttonSubtract, buttonMultiply, buttonDivide, buttonEqual, buttonClear;
private String currentNumber = "";
private String lastNumber = "";
private String lastOperator = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = findViewById(R.id.result_textview);
button1 = findViewById(R.id.button_1);
button2 = findViewById(R.id.button_2);
button3 = findViewById(R.id.button_3);
button4 = findViewById(R.id.button_4);
button5 = findViewById(R.id.button_5);
button6 = findViewById(R.id.button_6);
button7 = findViewById(R.id.button_7);
button8 = findViewById(R.id.button_8);
button9 = findViewById(R.id.button_9);
button0 = findViewById(R.id.button_0);
buttonAdd = findViewById(R.id.button_add);
buttonSubtract = findViewById(R.id.button_subtract);
buttonMultiply = findViewById(R.id.button_multiply);
buttonDivide = findViewById(R.id.button_divide);
buttonEqual = findViewById(R.id.button_equal);
buttonClear = findViewById(R.id.button_clear);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);
button8.setOnClickListener(this);
button9.setOnClickListener(this);
button0.setOnClickListener(this);
buttonAdd.setOnClickListener(this);
buttonSubtract.setOnClickListener(this);
buttonMultiply.setOnClickListener(this);
buttonDivide.setOnClickListener(this);
buttonEqual.setOnClickListener(this);
buttonClear.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_0:
currentNumber += "0";
break;
case R.id.button_1:
currentNumber += "1";
break;
case R.id.button_2:
currentNumber += "2";
break;
case R.id.button_3:
currentNumber += "3";
break;
case R.id.button_4:
currentNumber += "4";
break;
case R.id.button_5:
currentNumber += "5";
break;
case R.id.button_6:
currentNumber += "6";
break;
case R.id.button_7:
currentNumber += "7";
break;
case R.id.button_8:
currentNumber += "8";
break;
case R.id.button_9:
currentNumber += "9";
break;
case R.id.button_add:
lastOperator = "+";
lastNumber = currentNumber;
currentNumber = "";
break;
case R.id.button_subtract:
lastOperator = "-";
lastNumber = currentNumber;
currentNumber = "";
break;
case R.id.button_multiply:
lastOperator = "*";
lastNumber = currentNumber;
currentNumber = "";
break;
case R.id.button_divide:
lastOperator = "/";
lastNumber = currentNumber;
currentNumber = "";
break;
case R.id.button_equal:
double result = calculateResult();
resultTextView.setText(String.valueOf(result));
currentNumber = String.valueOf(result);
lastOperator = "";
lastNumber = "";
break;
case R.id.button_clear:
currentNumber = "";
lastNumber = "";
lastOperator = "";
resultTextView.setText("");
break;
}
resultTextView.setText(currentNumber);
}
private double calculateResult() {
double result = 0.0;
double current = Double.parseDouble(currentNumber);
double last = Double.parseDouble(lastNumber);
switch (lastOperator) {
case "+":
result = last + current;
break;
case "-":
result = last - current;
break;
case "*":
result = last * current;
break;
case "/":
result = last / current;
break;
}
return result;
}
}
```
在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
这样,就可以实现一个简单的 Android 计算器了。