已经在安卓中用表格布局实现计算机页面设计,写出计算功能实现的Java代码
时间: 2024-09-30 07:04:14 浏览: 23
在安卓中使用TableLayout实现计算机页面设计,并包含一些基础的计算功能,可以创建一个简单的四则运算界面。以下是一个简单的Java代码片段,展示了如何在一个TableLayout中创建按钮和监听它们的点击事件来进行计算:
```java
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class CalculatorFragment extends FragmentActivity {
private TableLayout tableLayout;
private TextView display;
private String[] buttons = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
// 获取UI组件
tableLayout = findViewById(R.id.table_layout);
display = findViewById(R.id.display);
// 初始化表头行
createHeaderRow();
// 创建按钮行
for (int i = 0; i < buttons.length; i++) {
addDigitButton(buttons[i]);
}
}
// 创建表头行
private void createHeaderRow() {
TableRow headerRow = new TableRow(this);
TextView header = new TextView(this);
header.setText("C");
headerRow.addView(header);
tableLayout.addView(headerRow);
}
// 添加数字按钮
private void addDigitButton(String buttonText) {
TableRow row = new TableRow(this);
TextView button = new TextView(this);
button.setText(buttonText);
button.setWidth(0); // 自适应宽度
button.setPadding(5, 5, 5, 5); // 边距
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handleButtonClick(view.getText().toString());
}
});
row.addView(button);
tableLayout.addView(row);
}
// 处理按钮点击事件
private void handleButtonClick(String digit) {
display.setText(display.getText().toString() + digit);
// 如果最后一个字符是=,尝试计算结果
if (digit.equals("=")) {
try {
display.setText(String.valueOf(Double.parseDouble(display.getText().toString())));
} catch (NumberFormatException e) {
Log.e("Calculator", "Invalid input!");
display.setText("");
}
}
}
}
```
在这个例子中,我们首先创建了表头行和数字按钮行。每个数字按钮都绑定了点击事件,当点击时会将数字追加到显示屏上。如果用户点击了等于号,我们会尝试解析当前输入并显示计算结果。
注意这只是一个非常基础的计算器实现,实际应用中可能需要处理更多的边界条件和复杂运算功能。