安卓开发表格布局案例简易计算器
时间: 2023-12-21 09:30:04 浏览: 42
以下是一个简单的安卓开发表格布局案例简易计算器的示例代码:
1. 首先,在XML布局文件中添加表格布局和按钮组件:
```xml
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*">
<TableRow>
<Button
android:id="@+id/button_clear"
android:text="C" />
<Button
android:id="@+id/button_backspace"
android:text="<-"
android:layout_span="2" />
<Button
android:id="@+id/button_divide"
android:text="/" />
</TableRow>
<TableRow>
<Button
android:id="@+id/button_7"
android:text="7" />
<Button
android:id="@+id/button_8"
android:text="8" />
<Button
android:id="@+id/button_9"
android:text="9" />
<Button
android:id="@+id/button_multiply"
android:text="*" />
</TableRow>
<TableRow>
<Button
android:id="@+id/button_4"
android:text="4" />
<Button
android:id="@+id/button_5"
android:text="5" />
<Button
android:id="@+id/button_6"
android:text="6" />
<Button
android:id="@+id/button_subtract"
android:text="-" />
</TableRow>
<TableRow>
<Button
android:id="@+id/button_1"
android:text="1" />
<Button
android:id="@+id/button_2"
android:text="2" />
<Button
android:id="@+id/button_3"
android:text="3" />
<Button
android:id="@+id/button_add"
android:text="+" />
</TableRow>
<TableRow>
<Button
android:id="@+id/button_0"
android:text="0"
android:layout_span="2" />
<Button
android:id="@+id/button_decimal"
android:text="." />
<Button
android:id="@+id/button_equals"
android:text="=" />
</TableRow>
</TableLayout>
```
2. 在Java代码中添加按钮点击事件和计算逻辑:
```java
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private String mOperand1;
private String mOperand2;
private String mOperator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.text_view);
Button buttonClear = findViewById(R.id.button_clear);
buttonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand1 = null;
mOperand2 = null;
mOperator = null;
mTextView.setText("");
}
});
Button buttonBackspace = findViewById(R.id.button_backspace);
buttonBackspace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = mTextView.getText().toString();
if (text.length() > 0) {
text = text.substring(0, text.length() - 1);
mTextView.setText(text);
}
}
});
Button buttonDivide = findViewById(R.id.button_divide);
buttonDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand1 = mTextView.getText().toString();
mOperator = "/";
mTextView.setText("");
}
});
Button buttonMultiply = findViewById(R.id.button_multiply);
buttonMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand1 = mTextView.getText().toString();
mOperator = "*";
mTextView.setText("");
}
});
Button buttonSubtract = findViewById(R.id.button_subtract);
buttonSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand1 = mTextView.getText().toString();
mOperator = "-";
mTextView.setText("");
}
});
Button buttonAdd = findViewById(R.id.button_add);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand1 = mTextView.getText().toString();
mOperator = "+";
mTextView.setText("");
}
});
Button buttonDecimal = findViewById(R.id.button_decimal);
buttonDecimal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = mTextView.getText().toString();
if (!text.contains(".")) {
mTextView.append(".");
}
}
});
Button buttonEquals = findViewById(R.id.button_equals);
buttonEquals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOperand2 = mTextView.getText().toString();
double result = 0;
switch (mOperator) {
case "/":
result = Double.parseDouble(mOperand1) / Double.parseDouble(mOperand2);
break;
case "*":
result = Double.parseDouble(mOperand1) * Double.parseDouble(mOperand2);
break;
case "-":
result = Double.parseDouble(mOperand1) - Double.parseDouble(mOperand2);
break;
case "+":
result = Double.parseDouble(mOperand1) + Double.parseDouble(mOperand2);
break;
}
mTextView.setText(String.valueOf(result));
}
});
Button button0 = findViewById(R.id.button_0);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("0");
}
});
Button button1 = findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("1");
}
});
Button button2 = findViewById(R.id.button_2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("2");
}
});
Button button3 = findViewById(R.id.button_3);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("3");
}
});
Button button4 = findViewById(R.id.button_4);
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("4");
}
});
Button button5 = findViewById(R.id.button_5);
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("5");
}
});
Button button6 = findViewById(R.id.button_6);
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("6");
}
});
Button button7 = findViewById(R.id.button_7);
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("7");
}
});
Button button8 = findViewById(R.id.button_8);
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("8");
}
});
Button button9 = findViewById(R.id.button_9);
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.append("9");
}
});
}
}
```
3. 运行应用程序并测试计算器。