当前位置:网络安全 > Android—TableLayout自定义表格

Android—TableLayout自定义表格

  • 发布:2023-10-03 17:36

最近的项目中,需要用到表格。由于表格很少用,我准备上网搜一下,发现可供参考的很少。另外,我还想进一步了解TableLayout布局,打算自己实现自己需要的表格。我们先看一下需求。



如图所示,上面的表格是类似的。主要区别:
1. 列数不同
2. 列的宽度不一定均分。
说一下思路:
从图中我们可以看到表头和表格可以分为两个表格。因为样式不同,而且为了方便表格中数据的填写。
获取屏幕宽度,设置单列宽度,其他列如果需要均分则均分。

上传代码:
tableview.xml部分


<LinearLayoutxmlns:android="http://www.sychzs.cn/apk/res/android"android:id=  "@+id/head_head"android:layout_width="match_parent"android:layout_height="wrap_content"android:方向=“垂直” ><表格布局 android:id="@+id/table_head"android:layout_width="wrap_content"android:layout_height="wrap_content">TableLayout><TableLayout
android:id="@+id/table_content"android:layout_width="wrap_content"android:layout_height="wrap_content">TableLayout>LinearLayout>

table_head 是表头 table_content 是表格
自定义的表格TableView :

package com.shone.table;导入 com.shone.androidtest.R;导入 android.app.Activity;/*** */ 导入 android.content.Context;
导入 android.graphics.Color;
导入 android.util.AttributeSet;
导入 android.util.DisplayMetrics;
导入 android.view.Gravity;
导入 android.view.LayoutInflater;
导入 android.view.View;
导入 android.view.View.OnClickListener;
导入 android.view.ViewGroup;导入 android.widget.RelativeLayout;
导入 android.widget.TableLayout;
导入 android.widget.TableRow;
导入 android.widget.TextView;/***@author对接**/公共  TableView 扩展  相对布局 {公共最终 静态 int LEFT_VISIBLE = 1;公共 最终 静态 int RIGHT_VISIBLE = 2;公共 最终 静态 int ALL_VISI BLE = 3;公共 最终 静态 int LEFT_RIGHT_VISIBLE = 4;私有 上下文 mContext = null;privateTableLayout mtable = null;private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; 私人最终 int FP = ViewGroup.LayoutParams.MATCH_PARENT;privateint行、列;private int宽度,高度;privateOnTableClick mOnTableClick;................................................ 。}class myListener 实现 OnClickListener {int col = 0;int row = 0;OnTableClick mOnTableClick;public  myListenerint row、int col、OnTableClick mOnTableClick) {super();this.row = 行;这个.col = col;这个.mOnTableClick = mOnTableClick;}@Overridepublic void  onClick(查看 v){ mOnTableClick.onTableClickListener(行,列);}
}接口 OnTableClick {public abstract void onTableClickListener( int行,int列);
}

在主布局文件中的使用activity_main.xml

“http://www.sychzs.cn/apk/res/android”xmlns:工具=“http://www.sychzs.cn/tools”android:layout_width = "match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}" > <com.shone.table.TableViewandroid:id="@+id/table"android:layout_width="wrap_content" android:layout_height ="wrap_content"android:text="@string/hello_world" />

配置活动

package com.shone.table;导入java.util.List;导入com.shone.androidtest.R;导入 安卓。应用程序活动;
导入 android.os.Bundle;导入 android.widget.Toast;公共MainActivity延伸 活动 {private TableView 表;private String[] mlistHead={"日期","类型",“金额”,"操作"};@OverrideprotectedvoidonCreate(捆绑已保存实例状态){超级.onCreate(savedInstanceState);setContentView(R.layout.activity_main);table = (TableView) findViewById(R.id.table);table.setTable(6,4,newOnTableClick () {@OverridepublicvoidonTableClickListener(int) 行,int列){吐司.makeText(MainActivity.这个,"row="+row+"column="+column,Toast.LENGTH_SHORT).show();} }) ;table.setTableHead(mlistHead);table.setTableContent();}}

效果图:

转载请注明出处:http://www.sychzs.cn/shoneworn/article/details/52223277

源码下载:http://www.sychzs.cn/detail/showorn/9605350

相关文章