1

EPG のようなレイアウトを作成しようとしていますが、これを参照しました ( Android TableLayout の ArrayList コンテンツを印刷します)。行を追加しようとすると、新しい行として追加されますが、それらの値を追加する必要があります。既存の行。ここに私のXMLファイルがあります:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >



    <TableLayout
        android:id="@+id/myTableLayout"
        android:layout_width="match_parent"
        android:layout_height="354dp"
        android:background="#6495ED"
        android:stretchColumns="*" >


     <TableRow
            android:id="@+id/tablerow1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

             <TextView
                 android:id="@+id/textView1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"

                 android:text="Some Text " 
                />

             <TextView
             android:id="@+id/textView2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

             android:text="Some Text"
              />

             <TextView
             android:id="@+id/textView3"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

             android:text="Some Text" />



        </TableRow>
</TableLayout>

そして私のJavaファイルは

TableLayout table = (TableLayout) findViewById(R.id.myTableLayout);
            for(int i=0;i<channel_arraylist.size();i++)
            {

                TableRow tableRow2=new TableRow(VideoDatabase1.this);
                localchannel1= channel_arraylist.get(i);

                  TextView tvid=new TextView(VideoDatabase1.this);
                  tvid.setText(""+Integer.toString(localchannel1.getID()));
             tableRow2.addView(tvid);

            table.addView(tableRow2);
4

4 に答える 4

1

交換してみる

TableRow tableRow2=new TableRow(VideoDatabase1.this);

TableRow tableRow2=((TableRow)table.getChildAt(0));

また、行にブレークポイントを設定します。

for(int i=0;i<channel_arraylist.size();i++)

そして、デバッグモードで「テーブル」変数を見てください。少なくとも 1 つの子が含まれている必要があります。それは助けなければなりません。

あなたの質問に関して: tableLayout に新しい行を追加するため、TableRow を下に追加する必要があります。そして、それは通常です。

于 2013-08-09T09:44:17.543 に答える
0

私はついに解決策を見つけました。ビューを特定のテーブルに追加するには、次のようにします

TextView tvid=(TextView)findViewById(R.id.textView1); 
          tvid.setText(localchannel1.getName()); 

ここでは、レイアウト ファイルで宣言した をid参照しidます。これにより、対応する列に値が挿入されます。すべてに感謝します。

于 2013-08-17T09:50:29.297 に答える