请选择 进入手机版 | 继续访问电脑版

[Android] Android动态表格的实当代 码(内容、样式可扩缩)

[复制链接]
查看96 | 回复6 | 2021-9-14 05:29:29 | 显示全部楼层 |阅读模式

1.实现动态表格效果 如下:

2.项目如下:

在这里插入图片形貌

**3.activity_smart_table.xml,表格布局代码如下:**

  1. <com.bin.david.form.core.SmartTable
  2. android:id="@+id/table"
  3. android:layout_weight="1"
  4. android:layout_width="match_parent"
  5. android:layout_height="0dp"
  6. android:background="@color/gray_lightest"/>
复制代码

4.SmartTableActivity.java,设置表名、表格数据

  1. private void getDatas() {
  2. String title = "表名";
  3. String getDatas = "[{"宿舍楼":"第一栋","宿舍1001人数":"8","宿舍1002人数":"2","宿舍1003人数":"2","宿舍1004人数":"1","宿舍1005人数":"6","宿舍1006人数":"6"}," +
  4. "{"宿舍楼":"第二栋","宿舍1001人数":"2","宿舍1002人数":"3","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  5. "{"宿舍楼":"第三栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  6. "{"宿舍楼":"第四栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  7. "{"宿舍楼":"第五栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  8. "{"宿舍楼":"第六栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  9. "{"宿舍楼":"第七栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  10. "{"宿舍楼":"第八栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  11. "{"宿舍楼":"第九栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  12. "{"宿舍楼":"第十栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  13. "{"宿舍楼":"第十一栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  14. "{"宿舍楼":"第十二栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  15. "{"宿舍楼":"第十三栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  16. "{"宿舍楼":"第十四栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  17. "{"宿舍楼":"第十五栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  18. "{"宿舍楼":"第十六栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  19. "{"宿舍楼":"第十七栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  20. "{"宿舍楼":"第十八栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  21. "{"宿舍楼":"第十九栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  22. "{"宿舍楼":"第二十栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  23. "{"宿舍楼":"第二十一栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  24. "{"宿舍楼":"第二十二栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  25. "{"宿舍楼":"第二十三栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  26. "{"宿舍楼":"第三十四栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}," +
  27. "{"宿舍楼":"第三十五栋","宿舍1001人数":"3","宿舍1002人数":"1","宿舍1003人数":"3","宿舍1004人数":"2","宿舍1005人数":"7","宿舍1006人数":"8"}]";
  28. List<Object> json = JsonUtil.jsonToObjs(getDatas, Object.class);
  29. MapTableData tableData = MapTableData.create(title, json,null);
  30. table.setTableData(tableData);
  31. }
复制代码

4.1 未完备 的代码MapTableData.java,开始创建新表格

  1. /**
  2. * 创建Map表格数据
  3. *
  4. * @param tableName 表格名
  5. * @param mapList Map数组
  6. */
  7. public static MapTableData create(String tableName, List<Object> mapList,String classity) {
  8. return create(tableName, mapList, null,classity);
  9. }
  10. /**
  11. * 创建Map表格数据
  12. *
  13. * @param tableName 表格名
  14. * @param mapList Map数组
  15. * @param keyFormat map中key格式化
  16. */
  17. public static MapTableData create(String tableName, List<Object> mapList, IFormat<String> keyFormat,String classity) {
  18. if (mapList != null) {
  19. List<Column> columns = new ArrayList<>();
  20. getMapColumn(columns, Column.INVAL_VALUE, Column.INVAL_VALUE, mapList, keyFormat);
  21. if(classity!=null&&!classity.isEmpty()){
  22. //根据classity 设置表头
  23. columns = getNewColumn(columns,classity);
  24. }
  25. return new MapTableData(tableName, mapList, columns);
  26. }
  27. return null;
  28. }
  29. private static List<Column> getNewColumn(List<Column> columns, String classity) {
  30. try{
  31. if(columns.size() == 0){
  32. return columns;
  33. }
  34. //多表头 重新组装表头
  35. // List<Column> newColumns = new ArrayList<>();
  36. //
  37. // if("Get_***".equals(classity)){
  38. // Column column0 = columns.get(0);column0.setColumnName("单位");
  39. // newColumns.add(column0);
  40. //
  41. // Column column1 = columns.get(1);column1.setColumnName("***");
  42. // Column column2 = columns.get(2);column2.setColumnName("***");
  43. // Column column3 = columns.get(3);column3.setColumnName("***");
  44. // Column column4 = columns.get(4);column4.setColumnName("***");
  45. // Column column5 = columns.get(5);column5.setColumnName("***");
  46. // newColumns.add(new Column("***", column1, column2, column3, column4, column5));
  47. //
  48. // Column column6 = columns.get(6);column6.setColumnName("***");
  49. // Column column7 = columns.get(7);column7.setColumnName("***");
  50. // Column column8 = columns.get(8);column8.setColumnName("***");
  51. // Column column9 = columns.get(9);column9.setColumnName("***");
  52. // Column column10 = columns.get(10);column10.setColumnName("***");
  53. //
  54. // newColumns.add(new Column("***", column6, column7, column8, column9, column10));
  55. //
  56. // return newColumns;
  57. // }else if("Get***".equals(classity)){//设施建设情况统计
  58. // newColumns.add(columns.get(0));
  59. //
  60. // newColumns.add(new Column("***", columns.get(1), columns.get(2), columns.get(3), columns.get(4)));
  61. //
  62. // Column column5 = columns.get(5);column5.setColumnName("***");
  63. // newColumns.add(column5);
  64. //
  65. // Column column6 = columns.get(6);column6.setColumnName("***");
  66. // newColumns.add(column6);
  67. //
  68. // newColumns.add(new Column("***", columns.get(7), columns.get(8), columns.get(9)));
  69. //
  70. // newColumns.add(new Column("***", columns.get(10), columns.get(11), columns.get(12), columns.get(13)));
  71. //
  72. // Column column14 = columns.get(14);column14.setColumnName("***");
  73. // Column column15 = columns.get(15);column15.setColumnName("***");
  74. // Column column16 = columns.get(16);column16.setColumnName("***");
  75. // Column column17 = columns.get(17);column17.setColumnName("地方");
  76. // Column column18 = columns.get(18);column18.setColumnName("***");
  77. // Column column19 = columns.get(19);column19.setColumnName("其他");
  78. // newColumns.add(new Column("***", column14, column15, column16, column17, column18,column19));
  79. //
  80. // newColumns.add(new Column("***", columns.get(20), columns.get(21), columns.get(22)));
  81. //
  82. //
  83. // Column column23 = columns.get(23);column23.setColumnName("***");
  84. // newColumns.add(column23);
  85. //
  86. // Column column24 = columns.get(24);column24.setColumnName("***");
  87. // newColumns.add(column24);
  88. //
  89. // return newColumns;
  90. // }else if("Get***".equals(classity)){//设施运行情况统计
  91. // newColumns.add(columns.get(0));
  92. // newColumns.add(new Column("项目数量", columns.get(1), columns.get(2), columns.get(3), columns.get(4)));
  93. //
  94. // newColumns.add(new Column("项目属性", columns.get(5), columns.get(6), columns.get(7), columns.get(8)));
  95. //
  96. // Column column9 = columns.get(9);column9.setColumnName("合计");
  97. // Column column10 = columns.get(10);column10.setColumnName("***");
  98. // Column column11 = columns.get(11);column11.setColumnName("***");
  99. // Column column12 = columns.get(12);column12.setColumnName("地方");
  100. // Column column13 = columns.get(13);column13.setColumnName("***");
  101. // Column column14 = columns.get(14);column14.setColumnName("其他");
  102. // newColumns.add(new Column("***", column9, column10, column11, column12, column13, column14));
  103. //
  104. // Column column15 = columns.get(15);column15.setColumnName("***");
  105. // newColumns.add(column15);
  106. //
  107. //
  108. // Column column16 = columns.get(16);column16.setColumnName("合计");
  109. // newColumns.add(new Column("***", column16, columns.get(17), columns.get(18)));
  110. //
  111. // newColumns.add(new Column("***", columns.get(19), columns.get(20), columns.get(21)));
  112. //
  113. // return newColumns;
  114. // }
  115. return columns;
  116. }catch (Exception e){
  117. e.printStackTrace();
  118. return columns;
  119. }
  120. }
  121. ......
  122. private MapTableData(String tableName, List t, List<Column> columns) {
  123. super(tableName, t, columns);
  124. //固定第一列//
  125. if(columns.size() > 0){
  126. columns.get(0).setFixed(true);
  127. }
  128. /
  129. }
复制代码
  1. 5.源代码zip地址下载点击链接:<a rel="external nofollow" target="_blank" href="https://download.csdn.net/download/qq_35091074/22009591">下载源代码</a>
复制代码

到此这篇关于Android动态表格的实当代 码(内容、样式可扩缩)的文章就先容 到这了,更多干系 android动态表格内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457033 | 2021-9-17 01:03:58 | 显示全部楼层
什么狗屁帖子啊,admin楼主的语文是苍老师教的吗?
回复

使用道具 举报

avatar 123457730 | 2021-9-21 07:17:12 | 显示全部楼层
东方不败还是灭绝师太啊?
回复

使用道具 举报

avatar C丶sunshine | 2021-9-26 18:06:15 | 显示全部楼层
知识就是力量啊!
回复

使用道具 举报

avatar 123457191 | 2021-10-14 12:59:20 | 显示全部楼层
视死如归的架势啊!
回复

使用道具 举报

楼上的很有激情啊!
回复

使用道具 举报

avatar 萍381 | 6 天前 | 显示全部楼层
我只看看不说话。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则