Android动态表格的实现代码(内容、样式可扩缩)
1.实现动态表格效果如下:
2.项⽬如下:
**3.activity_l,表格布局代码如下:**
<com.bin.SmartTable
android:id="@+id/table"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/gray_lightest"/>
4.SmartTableActivity.java,设置表名、表格数据
private void getDatas() {
String title = "表名";
String getDatas = "[{\"宿舍楼\":\"第⼀栋\",\"宿舍1001⼈数\":\"8\",\"宿舍1002⼈数\":\"2\",\"宿舍1003⼈数\":
\"2\",\"宿舍1004⼈数\":\"1\",\"宿舍1005⼈数\":\"6\",\"宿舍1006⼈数\":\"6\"}," + "{\"宿舍楼\":\"第⼆栋\",\"宿舍1001⼈数\":\"2\",\"宿舍1002⼈数\":\"3\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第三栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第四栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第五栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第六栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第七栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼋栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈
数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第九栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗⼀栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗⼆栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗三栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗四栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗五栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗六栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗七栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗⼋栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼗九栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼆⼗栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼆⼗⼀栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼆⼗⼆栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第⼆⼗三栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," +
"{\"宿舍楼\":\"第三⼗四栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}," + "{\"宿舍楼\":\"第三⼗五栋\",\"宿舍1001⼈数\":\"3\",\"宿舍1002⼈数\":\"1\",\"宿舍1003⼈数\":\"3\",\"宿舍1004⼈数\":\"2\",\"宿舍1005⼈数\":\"7\",\"宿舍1006⼈数\":\"8\"}]"; List<Object> json = JsonUtil.jsonToObjs(getDatas, Object.class);
MapTableData tableData = ate(title, json,null);
table.setTableData(tableData);
}
4.1 未完整的代码MapTableData.java,开始创建新表格
/**
* 创建Map表格数据
*
* @param tableName 表格名
* @param mapList Map数组
*/
public static MapTableData create(String tableName, List<Object> mapList,String classity) {
return create(tableName, mapList, null,classity);
}
/**
* 创建Map表格数据
*
* @param tableName 表格名
* @param mapList Map数组
* @param keyFormat map中key格式化
*/
public static MapTableData create(String tableName, List<Object> mapList, IFormat<String> keyFormat,String classity) {
if (mapList != null) {
List<Column> columns = new ArrayList<>();
getMapColumn(columns, Column.INVAL_VALUE, Column.INVAL_VALUE, mapList, keyFormat);
if(classity!=null&&!classity.isEmpty()){
//根据classity 设置表头
columns = getNewColumn(columns,classity);
android layout布局}
return new MapTableData(tableName, mapList, columns);
}
return null;
}
private static List<Column> getNewColumn(List<Column> columns, String classity) {
try{
if(columns.size() == 0){
return columns;
}
//多表头重新组装表头
/
/ List<Column> newColumns = new ArrayList<>();
//
// if("Get_***".equals(classity)){
// Column column0 = (0);column0.setColumnName("单位");
// newColumns.add(column0);
//
// Column column1 = (1);column1.setColumnName("***");
// Column column2 = (2);column2.setColumnName("***");
// Column column3 = (3);column3.setColumnName("***");
// Column column4 = (4);column4.setColumnName("***");
// Column column5 = (5);column5.setColumnName("***");
/
/ newColumns.add(new Column("***", column1, column2, column3, column4, column5));
//
// Column column6 = (6);column6.setColumnName("***");
// Column column7 = (7);column7.setColumnName("***");
// Column column8 = (8);column8.setColumnName("***");
// Column column9 = (9);column9.setColumnName("***");
// Column column10 = (10);column10.setColumnName("***");
//
// newColumns.add(new Column("***", column6, column7, column8, column9, column10));
//
// return newColumns;
/
/ }else if("Get***".equals(classity)){//设施建设情况统计
// newColumns.(0));
//
// newColumns.add(new Column("***", (1), (2), (3), (4)));
//
// Column column5 = (5);column5.setColumnName("***");
// newColumns.add(column5);
//
// Column column6 = (6);column6.setColumnName("***");
// newColumns.add(column6);
//
// newColumns.add(new Column("***", (7), (8), (9)));
//
// newColumns.add(new Column("***", (10), (11), (12), (13)));
//
// Column column14 = (14);column14.setColumnName("***");
// Column column15 = (15);column15.setColumnName("***");
// Column column16 = (16);column16.setColumnName("***");
// Column column17 = (17);column17.setColumnName("地⽅");
// Column column18 = (18);column18.setColumnName("***");
// Column column19 = (19);column19.setColumnName("其他");
/
/ newColumns.add(new Column("***", column14, column15, column16, column17, column18,column19));
//
// newColumns.add(new Column("***", (20), (21), (22)));
//
//
// Column column23 = (23);column23.setColumnName("***");
// newColumns.add(column23);
//
// Column column24 = (24);column24.setColumnName("***");
// newColumns.add(column24);
//
// return newColumns;
// }else if("Get***".equals(classity)){//设施运⾏情况统计
// newColumns.(0));
// newColumns.add(new Column("项⽬数量", (1), (2), (3), (4)));
//
// newColumns.add(new Column("项⽬属性", (5), (6), (7), (8)));
//
// Column column9 = (9);column9.setColumnName("合计");
// Column column10 = (10);column10.setColumnName("***");
// Column column11 = (11);column11.setColumnName("***");
// Column column12 = (12);column12.setColumnName("地⽅");
// Column column13 = (13);column13.setColumnName("***");
// Column column14 = (14);column14.setColumnName("其他");
// newColumns.add(new Column("***", column9, column10, column11, column12, column13, column14));
//
// Column column15 = (15);column15.setColumnName("***");
// newColumns.add(column15);
//
//
// Column column16 = (16);column16.setColumnName("合计");
// newColumns.add(new Column("***", column16, (17), (18)));
//
// newColumns.add(new Column("***", (19), (20), (21)));
//
// return newColumns;
// }
return columns;
}catch (Exception e){
e.printStackTrace();
return columns;
}
}
.
.....
private MapTableData(String tableName, List t, List<Column> columns) {
super(tableName, t, columns);
//固定第⼀列//
if(columns.size() > 0){
<(0).setFixed(true);
}
/
}
5.源代码zip地址下载点击链接:
到此这篇关于Android动态表格的实现代码(内容、样式可扩缩)的⽂章就介绍到这了,更多相关android动态表格内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论