我正在使用onClickListener
在表格布局中创建新的表格行。
我已经为表格行定义了所有值,虽然我想添加多行,但它工作正常。
final TableLayout tl=(TableLayout)findViewById(R.id.tbl);
final TableRow tr1 = new TableRow(this);
final TextView textview1 = new TextView(this);
final TextView textview2 = new TextView(this);
final Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textview1.setText("B");
textview1.setBackgroundResource(R.color.darkgrey);
textview1.setGravity(Gravity.CENTER);
textview1.setPadding(50, 50, 50, 50);
textview2.setText("A");
textview2.setBackgroundResource(R.color.darkgrey);
textview2.setGravity(Gravity.CENTER);
textview2.setPadding(50, 50, 50, 50);
tr1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tr1.addView(textview1);
tr1.addView(textview2);
tl.addView(tr1);
}
});
XML
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
android:id="@+id/tbl"
android:layout_below="@+id/btn">
<View
android:layout_height="2dip"
android:background="#FFFFFF" />
</TableLayout>
所以我点击了按钮一次,然后出现新的表格行,然后点击应用程序崩溃。
如何动态地将多个表行添加到表格布局中?我认为使用for循环,虽然我不确定应用它的正确方法。
编辑:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.none.myapplication, PID: 9775
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
答案 0 :(得分:1)
如果没有确切的错误消息很难分辨,但我觉得这是因为您创建了最终变量,然后尝试再次添加它们。您是否尝试在OnClickListener中创建新的表行和文本视图?
使用for循环在您的情况下没有用,因为您真的希望在单击时创建该行。