0

ボタンをクリックした後(つまり、アクティビティの生成後)にテーブルに行を追加しようとしています。

私のXMLコードは次のとおりです。

       <TableLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="0,1"
            android:id="@+id/result_table">
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    style="@style/MyHeader"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Col1" />
                <TextView
                    style="@style/MyHeader"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Col2"  />
            </TableRow>
        </TableLayout>

したがって、アクティビティをロードすると、テーブルに1行だけが表示されます。次に、ボタンをクリックすると、次のようになります。

    resultTable = (TableLayout)findViewById(R.id.result_table);

    LayoutParams rowLayoutParams = new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    LayoutParams cellLayoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    TableRow tableRow;
    TextView cellValue;
    for(Asdf a : as) {
        tableRow = new TableRow(this);
        tableRow.setLayoutParams(rowLayoutParams);

        cellValue = new TextView(this);
        cellValue.setText(a.getText());
        cellValue.setLayoutParams(cellLayoutParams);
        cellValue.setTextAppearance(this, R.style.MyText);
        tableRow.addView(cellValue);

        cellValue = new TextView(this);
        cellValue.setText("asdf");
        cellValue.setLayoutParams(cellLayoutParams);
        cellValue.setTextAppearance(this, R.style.MyText);
        tableRow.addView(cellValue);

        resultTable.addView(tableRow);
    }

    resultTable.invalidate();

しかし、それは何も追加しません、そして私はループが繰り返されることを確信しています。logcatに警告/例外が表示されません。

手伝ってくれませんか?

4

1 に答える 1

0

を次のように変更してみてLayoutParamsくださいViews

TableLayout.LayoutParams rowLayoutParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams cellLayoutParams = TableRow.new LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
于 2012-07-01T15:54:23.650 に答える