请帮我用sdk2.3.1安卓版本编程一个计算器
时间: 2024-05-16 20:18:35 浏览: 13
好的,下面是一个简单的计算器实现,你可以将它作为参考,进行修改和完善。
首先,打开Android Studio,新建一个空白的Android项目。在activity_main.xml文件中添加一个TextView和一组Button,代码如下:
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.calculator.MainActivity">
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="right"
android:textSize="30sp" />
<Button
android:id="@+id/btn_0"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/result"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="0" />
<Button
android:id="@+id/btn_1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/result"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_0"
android:text="1" />
<Button
android:id="@+id/btn_2"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/result"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_1"
android:text="2" />
<Button
android:id="@+id/btn_3"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/result"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_2"
android:text="3" />
<Button
android:id="@+id/btn_4"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_0"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="4" />
<Button
android:id="@+id/btn_5"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_0"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_4"
android:text="5" />
<Button
android:id="@+id/btn_6"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_0"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_5"
android:text="6" />
<Button
android:id="@+id/btn_7"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_4"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="7" />
<Button
android:id="@+id/btn_8"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_4"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_7"
android:text="8" />
<Button
android:id="@+id/btn_9"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_4"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_8"
android:text="9" />
<Button
android:id="@+id/btn_add"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_7"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="+" />
<Button
android:id="@+id/btn_subtract"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_7"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_add"
android:text="-" />
<Button
android:id="@+id/btn_multiply"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_8"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_subtract"
android:text="x" />
<Button
android:id="@+id/btn_divide"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_below="@id/btn_8"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_multiply"
android:text="/" />
<Button
android:id="@+id/btn_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_add"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="Clear" />
<Button
android:id="@+id/btn_equal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_add"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/btn_clear"
android:text="=" />
</RelativeLayout>
```
接下来,在MainActivity.java中实现逻辑。首先定义一些变量和常量:
```
public class MainActivity extends AppCompatActivity {
private TextView mResult;
private double mOperand1 = Double.NaN;
private double mOperand2;
private String mOperator = "";
private final char ADDITION = '+';
private final char SUBTRACTION = '-';
private final char MULTIPLICATION = '*';
private final char DIVISION = '/';
private final char EQU = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResult = findViewById(R.id.result);
findViewById(R.id.btn_0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("0");
}
});
findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("1");
}
});
findViewById(R.id.btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("2");
}
});
findViewById(R.id.btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("3");
}
});
findViewById(R.id.btn_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("4");
}
});
findViewById(R.id.btn_5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("5");
}
});
findViewById(R.id.btn_6).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("6");
}
});
findViewById(R.id.btn_7).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("7");
}
});
findViewById(R.id.btn_8).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("8");
}
});
findViewById(R.id.btn_9).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
appendNumber("9");
}
});
findViewById(R.id.btn_add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
compute();
mOperator = "+";
}
});
findViewById(R.id.btn_subtract).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
compute();
mOperator = "-";
}
});
findViewById(R.id.btn_multiply).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
compute();
mOperator = "*";
}
});
findViewById(R.id.btn_divide).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
compute();
mOperator = "/";
}
});
findViewById(R.id.btn_clear).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clear();
}
});
findViewById(R.id.btn_equal).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
compute();
mOperator = "";
}
});
}
```
然后定义一些辅助方法,用于实现计算器的基本功能:
```
private void appendNumber(String number) {
if (mResult.getText().toString().equals("0")) {
mResult.setText(number);
} else {
mResult.append(number);
}
}
private void compute() {
if (!Double.isNaN(mOperand1)) {
mOperand2 = Double.parseDouble(mResult.getText().toString());
switch (mOperator) {
case "+":
mOperand1 = mOperand1 + mOperand2;
break;
case "-":
mOperand1 = mOperand1 - mOperand2;
break;
case "*":
mOperand1 = mOperand1 * mOperand2;
break;
case "/":
mOperand1 = mOperand1 / mOperand2;
break;
case "":
break;
}
} else {
mOperand1 = Double.parseDouble(mResult.getText().toString());
}
mResult.setText(String.valueOf(mOperand1));
}
private void clear() {
mResult.setText("0");
mOperand1 = Double.NaN;
mOperand2 = 0;
mOperator = "";
}
```
最后别忘了在AndroidManifest.xml文件中添加权限:
```
<uses-permission android:name="android.permission.INTERNET" />
```
这样就完成了一个简单的计算器应用。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)