我需要在Table布局中添加一些行,并且每行需要添加两个Image Buttons。每次启动Activity时行数都可以不同 - 我查看SQLite数据库,对于数据库中的每一行,我需要添加一个Image Button。 Table布局的每一行都有两个图像按钮。到目前为止,我有这段代码:
db.open();
int count = db.getCount();
boolean newRow = true;
for (int i = 0; i < count; i++) {
if (newRow == true) {
newRow = false;
row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}
ImageButton button = new ImageButton(this);
row.addView(button);
tableLayout.addView(row);
}
db.close();
TableRow行在此代码块上方定义为此Activity的变量。我的表格布局(代码中的tableLayout)在Activity布局的XML代码中定义:
<TableLayout
android:id="@+id/tableLayoutContacts"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TableLayout>
代码在
行崩溃 tableLayout.addView(row);
我无法解决这个问题。有任何想法吗?谢谢!
答案 0 :(得分:0)
我认为问题不同
似乎您的代码只有一行,并且您将该行一次又一次地添加到tableLayout,如下所示。
tableLayout.addView(row);
这将导致ViewGroup的addViewInner函数出现IllegalStateException
试试这个
db.open();
int count = db.getCount();
boolean newRow = false;
for (int i = 0; i < count; i++) {
if (i % 2 == 0)
newRow = true;
if (newRow == true) {
newRow = false;
row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tableLayout.addView(row);
}
ImageButton button = new ImageButton(this);
row.addView(button);
}
db.close();