Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用onClickListener动态地将多个表行添加到表布局中_Java_Android - Fatal编程技术网

Java 使用onClickListener动态地将多个表行添加到表布局中

Java 使用onClickListener动态地将多个表行添加到表布局中,java,android,Java,Android,我正在使用onClickListener在我的表格布局中创建一个新的表格行。 我已经为我的表行定义了所有的值,虽然我想添加多行,但它工作正常 final TableLayout tl=(TableLayout)findViewById(R.id.tbl); final TableRow tr1 = new TableRow(this); final TextView textview1 = new TextView(this); final TextView te

我正在使用
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>

如果没有确切的错误消息,很难判断,但我觉得这是因为您创建了最终变量,然后再次尝试添加它们。您是否尝试过在OnClickListener中创建新的表行和文本视图


在您的情况下,使用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.