Android動態(tài)表格的實現代碼(內容、樣式可擴縮)
更新時間:2021年09月08日 09:57:23 作者:彬sir哥
這篇文章主要介紹了Android動態(tài)表格的實現代碼(內容、樣式可擴縮),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1.實現動態(tài)表格效果如下:
2.項目如下:

**3.activity_smart_table.xml,表格布局代碼如下:**
<com.bin.david.form.core.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 = MapTableData.create(title, json,null);
table.setTableData(tableData);
}
4.1 未完整的代碼MapTableData.java,開始創(chuàng)建新表格
/**
* 創(chuàng)建Map表格數據
*
* @param tableName 表格名
* @param mapList Map數組
*/
public static MapTableData create(String tableName, List<Object> mapList,String classity) {
return create(tableName, mapList, null,classity);
}
/**
* 創(chuàng)建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);
}
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 = columns.get(0);column0.setColumnName("單位");
// newColumns.add(column0);
//
// Column column1 = columns.get(1);column1.setColumnName("***");
// Column column2 = columns.get(2);column2.setColumnName("***");
// Column column3 = columns.get(3);column3.setColumnName("***");
// Column column4 = columns.get(4);column4.setColumnName("***");
// Column column5 = columns.get(5);column5.setColumnName("***");
// newColumns.add(new Column("***", column1, column2, column3, column4, column5));
//
// Column column6 = columns.get(6);column6.setColumnName("***");
// Column column7 = columns.get(7);column7.setColumnName("***");
// Column column8 = columns.get(8);column8.setColumnName("***");
// Column column9 = columns.get(9);column9.setColumnName("***");
// Column column10 = columns.get(10);column10.setColumnName("***");
//
// newColumns.add(new Column("***", column6, column7, column8, column9, column10));
//
// return newColumns;
// }else if("Get***".equals(classity)){//設施建設情況統(tǒng)計
// newColumns.add(columns.get(0));
//
// newColumns.add(new Column("***", columns.get(1), columns.get(2), columns.get(3), columns.get(4)));
//
// Column column5 = columns.get(5);column5.setColumnName("***");
// newColumns.add(column5);
//
// Column column6 = columns.get(6);column6.setColumnName("***");
// newColumns.add(column6);
//
// newColumns.add(new Column("***", columns.get(7), columns.get(8), columns.get(9)));
//
// newColumns.add(new Column("***", columns.get(10), columns.get(11), columns.get(12), columns.get(13)));
//
// Column column14 = columns.get(14);column14.setColumnName("***");
// Column column15 = columns.get(15);column15.setColumnName("***");
// Column column16 = columns.get(16);column16.setColumnName("***");
// Column column17 = columns.get(17);column17.setColumnName("地方");
// Column column18 = columns.get(18);column18.setColumnName("***");
// Column column19 = columns.get(19);column19.setColumnName("其他");
// newColumns.add(new Column("***", column14, column15, column16, column17, column18,column19));
//
// newColumns.add(new Column("***", columns.get(20), columns.get(21), columns.get(22)));
//
//
// Column column23 = columns.get(23);column23.setColumnName("***");
// newColumns.add(column23);
//
// Column column24 = columns.get(24);column24.setColumnName("***");
// newColumns.add(column24);
//
// return newColumns;
// }else if("Get***".equals(classity)){//設施運行情況統(tǒng)計
// newColumns.add(columns.get(0));
// newColumns.add(new Column("項目數量", columns.get(1), columns.get(2), columns.get(3), columns.get(4)));
//
// newColumns.add(new Column("項目屬性", columns.get(5), columns.get(6), columns.get(7), columns.get(8)));
//
// Column column9 = columns.get(9);column9.setColumnName("合計");
// Column column10 = columns.get(10);column10.setColumnName("***");
// Column column11 = columns.get(11);column11.setColumnName("***");
// Column column12 = columns.get(12);column12.setColumnName("地方");
// Column column13 = columns.get(13);column13.setColumnName("***");
// Column column14 = columns.get(14);column14.setColumnName("其他");
// newColumns.add(new Column("***", column9, column10, column11, column12, column13, column14));
//
// Column column15 = columns.get(15);column15.setColumnName("***");
// newColumns.add(column15);
//
//
// Column column16 = columns.get(16);column16.setColumnName("合計");
// newColumns.add(new Column("***", column16, columns.get(17), columns.get(18)));
//
// newColumns.add(new Column("***", columns.get(19), columns.get(20), columns.get(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){
columns.get(0).setFixed(true);
}
/
}
5.源代碼zip地址下載點擊鏈接:下載源代碼
到此這篇關于Android動態(tài)表格的實現代碼(內容、樣式可擴縮)的文章就介紹到這了,更多相關android動態(tài)表格內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android中隱藏狀態(tài)欄和標題欄的方法匯總(隱藏狀態(tài)欄、標題欄的五種方法)
這篇文章主要介紹了Android中隱藏狀態(tài)欄和標題欄的方法匯總(隱藏狀態(tài)欄、標題欄的五種方法),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
Android不規(guī)則封閉區(qū)域填充色彩的實例代碼
這篇文章主要介紹了Android不規(guī)則封閉區(qū)域填充色彩的實例代碼, 具有很好的參考價值,希望對大家有所幫助,一起跟隨小編過來看看吧2018-05-05

