android写出计算器界面
时间: 2023-10-18 22:23:30 浏览: 71
以下是一个简单的Android计算器界面的示例代码:
XML布局文件:
```xml
<?xml version="1.0" encoding="utf-8"?>
<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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="0"
android:textSize="36sp"
android:padding="16dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C" />
<Button
android:id="@+id/btn_del"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="DEL" />
<Button
android:id="@+id/btn_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" />
<Button
android:id="@+id/btn_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/btn_7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
<Button
android:id="@+id/btn_8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:id="@+id/btn_9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:id="@+id/btn_minus"
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/btn_4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:id="@+id/btn_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/btn_6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:id="@+id/btn_plus"
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/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/btn_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:id="@+id/btn_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
<Button
android:id="@+id/btn_equal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />
</LinearLayout>
</LinearLayout>
```
Java代码:
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView result;
private String currentNumber = "";
private String lastOperator = "";
private boolean hasOperator = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = findViewById(R.id.result);
findViewById(R.id.btn_clear).setOnClickListener(this);
findViewById(R.id.btn_del).setOnClickListener(this);
findViewById(R.id.btn_divide).setOnClickListener(this);
findViewById(R.id.btn_multiply).setOnClickListener(this);
findViewById(R.id.btn_minus).setOnClickListener(this);
findViewById(R.id.btn_plus).setOnClickListener(this);
findViewById(R.id.btn_equal).setOnClickListener(this);
findViewById(R.id.btn_0).setOnClickListener(this);
findViewById(R.id.btn_1).setOnClickListener(this);
findViewById(R.id.btn_2).setOnClickListener(this);
findViewById(R.id.btn_3).setOnClickListener(this);
findViewById(R.id.btn_4).setOnClickListener(this);
findViewById(R.id.btn_5).setOnClickListener(this);
findViewById(R.id.btn_6).setOnClickListener(this);
findViewById(R.id.btn_7).setOnClickListener(this);
findViewById(R.id.btn_8).setOnClickListener(this);
findViewById(R.id.btn_9).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_clear:
currentNumber = "";
lastOperator = "";
hasOperator = false;
result.setText("0");
break;
case R.id.btn_del:
if (currentNumber.length() > 0) {
currentNumber = currentNumber.substring(0, currentNumber.length() - 1);
result.setText(currentNumber);
}
break;
case R.id.btn_divide:
case R.id.btn_multiply:
case R.id.btn_minus:
case R.id.btn_plus:
if (hasOperator) {
currentNumber = currentNumber.substring(0, currentNumber.length() - 1) + v.getTag().toString();
} else {
currentNumber = currentNumber + v.getTag().toString();
}
lastOperator = v.getTag().toString();
hasOperator = true;
result.setText(currentNumber);
break;
case R.id.btn_equal:
if (lastOperator == "") {
break;
}
String[] numbers = currentNumber.split("\\" + lastOperator);
double resultNumber = 0;
switch (lastOperator) {
case "/":
resultNumber = Double.parseDouble(numbers[0]) / Double.parseDouble(numbers[1]);
break;
case "*":
resultNumber = Double.parseDouble(numbers[0]) * Double.parseDouble(numbers[1]);
break;
case "-":
resultNumber = Double.parseDouble(numbers[0]) - Double.parseDouble(numbers[1]);
break;
case "+":
resultNumber = Double.parseDouble(numbers[0]) + Double.parseDouble(numbers[1]);
break;
}
currentNumber = String.valueOf(resultNumber);
lastOperator = "";
hasOperator = false;
result.setText(currentNumber);
break;
default:
currentNumber = currentNumber + v.getTag().toString();
result.setText(currentNumber);
break;
}
}
}
```
这个简单的示例演示了如何实现一个基本的计算器界面和计算逻辑。
阅读全文