2011-07-20 14 views
8

LinearLayoutに複数のビューを追加したいとします。ここでは、私がLinearLayoutに複数のビューを追加するために使用しているコードを示します。Linearlayoutでビューを動的に追加するときの問題

Javaコード:ここで

LinearLayout seriesMainListItemView = (LinearLayout) findViewById(R.id.SeriesMainListItemView); 
       LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

       for (int i=0; i<scheduleArr.length; i++) { 

         View inflatedView = mInflater.inflate(R.layout.scheduleitem, null); 
         TextView inflatertext1 = (TextView) inflatedView.findViewById(R.id.text1); 
         TextView inflatertext2 = (TextView) inflatedView.findViewById(R.id.text2); 
         inflatertext1.setText(scheduleArr[i][0]); 
         inflatertext2.setText(scheduleArr[i][1]); 
         Log.i("data",i + " " + scheduleArr[i][0] + "/" + scheduleArr[i][1]); 
         seriesMainListItemView.addView(inflatedView); 
       } 

は、私は複数回を追加したいビューxmlです。ここで


私はそれを追加したいのLinearLayoutです。

<TableLayout 
       android:layout_gravity="center_vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:paddingLeft="1dip" 
       android:paddingRight="1dip" > 
       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 
        <ImageView 
         android:id="@+id/imgSeriesMainScheduleImg" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:background="@drawable/scheduleheader"/> 
        <LinearLayout 
         android:id="@+id/SeriesMainListItemView"          
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent"> 
        </LinearLayout>                        
       </TableRow> 
.............. 
</TableLayout> 

しかし、配列の長さは3です。私のコードに問題がどのようなものですが、唯一の単一のビューは、のLinearLayoutに追加されましたか?

+4

LinearLayoutの向きを設定しましたか? – Sujit

+0

方向が設定されていません。 –

答えて

11

LinearLayoutの向きをVerticalに追加しました。それは完璧になります。あなたのヒントのためにSujitに感謝します。

+0

これは私の問題を解決しました!カスタムのアンドロイドコンポーネントを作成しようとしていて、LinearLayoutを拡張した新しいクラスでオリエンテーションを設定するのを忘れてしまった。 –

0

addView()のオブジェクトにはLayoutParamsのオブジェクトを使用し、適切なLinearLayout.LayoutParamsを指定して、それが役立つかどうかを確認します。

+0

私は "seriesMainListItemView.addView(inflatedView、i、new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT、LayoutParams.WRAP_CONTENT));"を試しました。また、結果に変更はありません。 –

+0

@dalandroid:ウィジェットが追加されているかどうかを確認するには、階層ビューを使用します。そうでない場合は、コードが呼び出されていないかどうかを判断します。そうである場合、階層ビューにはそれらが表示されない理由が示されます。 – CommonsWare

関連する問題