简写通过表格布局tablelayout来搭建一个计算器界面的源码
时间: 2023-09-03 22:03:31 浏览: 211
Android Studio实现简易计算器(表格布局TableLayout)
下面是一个使用表格布局(TableLayout)来搭建计算器界面的源代码,简单地实现了加减乘除四则运算功能。
请注意,这个代码仅仅是一个基本的示例,仅包含了布局和基本的运算功能,并未添加任何错误处理或其他功能。例如,没有包含输入验证,可以输入数字和运算符的长度、类型等都没有做判断。
```java
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class CalculatorActivity extends AppCompatActivity implements View.OnClickListener {
private TextView resultTextView; // 显示计算结果的TextView
private String currentNumber; // 当前输入的数字
private String currentOperator; // 当前选择的运算符
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
resultTextView = findViewById(R.id.result_text_view);
currentNumber = "";
currentOperator = "";
// 获取TableLayout布局对象
TableLayout tableLayout = findViewById(R.id.table_layout);
// 设置TableLayout的属性
tableLayout.setStretchAllColumns(true);
tableLayout.setShrinkAllColumns(true);
// 创建一个2D数组表示表格布局
String[][] buttonTexts = {
{"7", "8", "9", "+"},
{"4", "5", "6", "-"},
{"1", "2", "3", "x"},
{"0", ".", "=", "/"}
};
// 遍历2D数组,动态创建并添加Button到TableLayout中
for (int row = 0; row < buttonTexts.length; row++) {
TableRow tableRow = new TableRow(this);
for (int col = 0; col < buttonTexts[row].length; col++) {
Button button = new Button(this);
button.setText(buttonTexts[row][col]);
button.setOnClickListener(this);
button.setPadding(16, 16, 16, 16);
TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT
);
layoutParams.gravity = Gravity.CENTER;
tableRow.addView(button, layoutParams);
}
tableLayout.addView(tableRow);
}
}
@Override
public void onClick(View view) {
// 获取点击的按钮的文本
String buttonText = ((Button) view).getText().toString();
// 判断按钮的类型
try {
int number = Integer.parseInt(buttonText);
currentNumber += buttonText;
resultTextView.setText(currentNumber);
} catch (NumberFormatException e) {
// 按钮不是数字,是运算符或其他特殊符号
switch (buttonText) {
case "+":
case "-":
case "x":
case "/":
currentOperator = buttonText;
break;
case "=":
calculateResult();
break;
}
}
}
private void calculateResult() {
int result = 0;
// 根据运算符进行四则运算
switch (currentOperator) {
case "+":
result = Integer.parseInt(currentNumber) + Integer.parseInt(resultTextView.getText().toString());
break;
case "-":
result = Integer.parseInt(currentNumber) - Integer.parseInt(resultTextView.getText().toString());
break;
case "x":
result = Integer.parseInt(currentNumber) * Integer.parseInt(resultTextView.getText().toString());
break;
case "/":
result = Integer.parseInt(currentNumber) / Integer.parseInt(resultTextView.getText().toString());
break;
}
// 更新显示结果
resultTextView.setText(String.valueOf(result));
currentNumber = "";
currentOperator = "";
}
}
```
上述代码通过TableLayout布局来创建一个4行4列的计算器界面,并通过点击按钮的事件监听来处理按钮的点击事件。可以输入整数和小数点,选择运算符并进行运算,最后在TextView中显示计算结果。
注意:上述代码只是一个简化的示例,未考虑实际使用中可能遇到的各种情况和异常处理。真实的计算器应该有更多的功能和错误处理。
阅读全文