0

アプリの線形レイアウトにいくつかのテーブル行を動的に追加する必要があります。私はこのコードを書きます:

LinearLayout tabella = (LinearLayout) findViewById(R.id.tabella_contatori);

    for(int i =0; i<array_list.size(); i++){
        TableRow row = new TableRow(getApplicationContext());
        row.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        TextView data = new TextView(getApplicationContext());
        data.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.2f));
        data.setTextAppearance(getApplicationContext(), android.R.attr.textAppearanceMedium);
        data.setTextColor(Color.BLACK);
        data.setBackgroundColor(Color.WHITE);
        data.setPadding(2, 0, 0, 0);
        data.setText("asd");

        row.addView(data);
        tabella.addView(row);
    }
}

しかし、アプリを開いても何も表示されません。array_list.size が 0 より大きいかどうかは既に確認しています。どうすればよいですか? ありがとう、マティア

4

2 に答える 2

3

問題は TextView Layout Params にあります。タイプは、LinearLayout.LayoutParams ではなく、TableRow.LayoutParams である必要があります。 data.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

于 2012-04-13T14:19:58.557 に答える
1

テーブルレイアウトを取得し、これをmain.xmlで使用してみてください...

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myTableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
     <TableRow
          android:layout_width="fill_parent"
          android:layout_height="wrap_content">

          <TextView android:text="Some Text"/>

     </TableRow>
</TableLayout>

あなたの活動で

this.setContentView(R.layout.main);

/* Find Tablelayout defined in main.xml */
TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);
     /* Create a new row to be added. */
     TableRow tr = new TableRow(this);
     tr.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
          /* Create a TextView to be the row-content. */    

        TextView data = new TextView(getApplicationContext());
        data.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 0.2f));
        data.setTextAppearance(getApplicationContext(), android.R.attr.textAppearanceMedium);
        data.setTextColor(Color.BLACK);
        data.setBackgroundColor(Color.WHITE);
        data.setPadding(2, 0, 0, 0);
        data.setText("asd");

          /* Add TextView to row. */
          tr.addView(data);
    /* Add row to TableLayout. */
    tl.addView(tr,new TableLayout.LayoutParams(
          LayoutParams.FILL_PARENT,
          LayoutParams.WRAP_CONTENT));
于 2012-04-13T14:10:27.377 に答える