12 - 布局Layout:TableLayout表格布局

转载注明出处: http://blog.csdn.net/eana_don/article/details/8362744
资料参考:官网API

TableLayout 为表格布局。将屏幕分为一个个表格。使用TableRow作为行来区分,没有TableColumn这样的东西。它会将包含在TableRow里的东西自动根据控件个数做列的对应。而列的宽度由所有行中列最宽的控件决定宽度。


一、TableLayout常用的属性:

android:stretchColumns:指定列拉伸,当屏幕有剩余的空间时,用指定的列充满其余控件
android:shrinkColumns:指定自动收缩列,只有在长度超过屏幕时起作用,当控件长度超过屏幕时,指定的列将收缩到适应屏幕的宽度
android:layout_column:指定跳过第几列不填
android:layout_span:指定一个控件跨几行。默认为1


二、xml布局写法:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	andr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用表格布局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中显示计算结果。 注意:上述代码只是一个简化的示例,未考虑实际使用中可能遇到的各种情况和异常处理。真实的计算器应该有更多的功能和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值