这是所需的表格布局:
+++++++++++++
+ + + +
+ 1 + 2 + 3 +
+ + + +
+++++++++++++
+ + + +
+ 4 + 5 + 6 +
+ + + +
+++++++++++++
+ + + +
+ 7 + 8 + - +
+ + + +
+++++++++++++
我的表是根据json数据动态创建的:
TableLayout tl = (TableLayout) findViewById(R.id.table);
JSONArray jsonArray = new JSONArray( all_gpio_json );
for ( i = 0; i < jsonArray.length(); i++) {
...some dynamic table generation code like this:
TableRow row = new TableRow(this);
Switch sw = new Switch( this );
row.addView(sw);
}
tl.addView( row );
生成表没有问题,因此,每个json值都由唯一的行表示,但是我想拥有每行最多3列的布局,并且行数会随着时间的增长而动态增长因为循环中有json数据。
我尝试在现有行已填充3个项目之后添加新行:
if (i % 3 == 1) {TableRow new_row = new TableRow( this );}
但是在应该添加new_row时出现错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.comain.tests, PID: 15519
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.comainxxx.tests/com.comainxxx.tests.MainActivity}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
任何人都会有一个想法,如何实现这一点以动态添加新行?
编辑:通过实现网格视图解决了,这更适合此任务。
答案 0 :(得分:0)
在Java中是可能的。您需要在if条件之外声明该变量。尝试以下代码
/Wall
答案 1 :(得分:0)
编辑:通过实现网格视图解决了,这更适合此任务。