2011-07-20 6 views
8

Je souhaite ajouter plusieurs vues dans un LinearLayout. Voici le code que j'utilise pour ajouter ajouter plusieurs vues au LinearLayout.Problème à ajouter Afficher dynamiquement dans Linearlayout

code 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); 
       } 

Voici la vue xml que je veux ajouter plusieurs fois.


Voici le LinearLayout où je veux ajouter.

<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> 

Mais seule vue unique ajoute dans le LinearLayout, bien que la longueur du tableau est 3. Quel est le problème dans mon code?

+4

avez-vous défini l'orientation du LinearLayout? – Sujit

+0

Aucune orientation n'est définie. –

Répondre

11

J'ai ajouté l'orientation de LinearLayout comme Vertical. Et ça devient parfait. Merci Sujit pour vos conseils.

+0

Cela a résolu mon problème! J'essayais de faire un composant android personnalisé et j'ai oublié de définir l'orientation sur ma nouvelle classe qui étend LinearLayout. –

0

Utilisez la version de addView() qui prend un objet LayoutParams, fournissez un LinearLayout.LayoutParams approprié, et voyez si cela aide.

+0

J'ai essayé avec "seriesMainListItemView.addView (inflatedView, i, nouveau LinearLayout.LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));" aussi, pas de changement dans le résultat –

+0

@dalandroid: Utilisez la vue hiérarchique pour voir si les widgets sont ajoutés. Si ce n'est pas le cas, déterminez pourquoi votre code n'est pas appelé ou quelque chose. Si c'est le cas, la vue hiérarchique doit indiquer pourquoi elles ne sont pas visibles. – CommonsWare

Questions connexes