2012-04-03 1 views
0

J'ai créé la conception de mise en page en utilisant du code java uniquement à partir des conceptions de mise en page XML. Le code que j'ai utilisé est le suivantComment utiliser le gonfleur LayoutInflater correctement

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView tv = new TextView(mContext); 
    tv.setText(hotelList.get(position).name); 
    return tv; 
    } 

Comment utiliser layoutInflator pour créer une mise en page pour cela. J'ai besoin de 2 textviews supplémentaires dans un seul élément de la liste. la liste complète contient 10 éléments de liste différents

Veuillez fournir quelques codes pour cela. Aide appréciée

+0

Salut, concevez-vous pour ListView? donne moi plus de détails. –

+0

Je suis la conception de la mise en page en analysant un xml en utilisant SAX et à partir du résultat analysé, j'ai besoin d'afficher le contenu dans une vue de liste en utilisant la liste. Maintenant, je montre la liste en utilisant le code java, mais j'ai besoin de montrer comme mentionné ci-dessus. – aditi

Répondre

2

J'ai déjà vécu cela en ayant ma classe statique aussi. Check this out, il vous aidera:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View rowView = convertView; 


     if (rowView == null) { 

      LayoutInflater inflator = this._activity.getLayoutInflater(); 
      rowView = inflator.inflate(R.layout.todolistlisting, null); 
      TodoListViewHolder viewHolder = new TodoListViewHolder(); 
      viewHolder._name  = (TextView) rowView.findViewById(R.id.tVTLName);   
      viewHolder._completed = (TextView) rowView.findViewById(R.id.tVTLCCount); 
      viewHolder._remaining = (TextView) rowView.findViewById(R.id.tVTLRCount); 
      rowView.setTag(viewHolder); 

     } 

     TodoListViewHolder holder = (TodoListViewHolder) rowView.getTag(); 
     VO_TodoList votodolist = this._items.get(position);   
     holder._name.setText(votodolist._title);    
     holder._completed.setText(votodolist._completed); 
     holder._remaining.setText(votodolist._remaining); 

     return rowView;  

    } 

TodoListViewHolder est mon avis porte-composants ici. comme votre TextView.

2

Je suppose que vous savez comment faire une mise en page XML pour cette mise en page. Il suffit donc de faire la mise en page XML et obtenir l'objet de la mise en page principale en utilisant le code suivant:

LinearLayout mainLayout=(LinearLayout) View.inflate(R.layout.yourlayout); //if yourlayout.xml is the name of the xml file you made and put in the layout folder. 

Pour l'enfant de la mise en page, disons que si c'est un TextView avec l'id text, le code serait :

TextView textView=(TextView)mainLayout.findViewById(R.id.text); 
+0

Ceci est seulement pour un textview, j'ai besoin de deux plus, un total de trois textview dans un seul élément de la liste, 3 autres dans l'autre élément de liste .. donc il y a 10 éléments dans la vue de liste – aditi

+0

Ensuite, mettez toutes ces 10 vues dans le XML, et obtenir leur objet en utilisant le même code que j'ai utilisé pour ce TextView. Vous devez appeler la première instruction une seule pour obtenir l'objet de la mise en page principale, que je suppose être un LinearLayout, si c'est autre chose, il suffit de remplacer LinearLayout dans le code avec cela. – noob

0

Vous pouvez ajouter vue à l'exécution en utilisant gonfleur comme celui-ci

LinerLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.news_categories_item, null); 

TextView categoryValueTextView = (TextView)linearLayout.findViewById(R.id.news_category_item_value); 

mMainLinearLayout.addView(categoryValueTextView); 

ici, je suis Gonflage un point de vue du texte qui est là dans une autre linéaire mise en page (c'est une mise en page linéaire simple qui ne contient que du texte) au moment de l'exécution et en l'ajoutant à ma disposition linéaire principale.

Vous pouvez obtenir l'objet inflatable dans votre activité en utilisant getLayoutInflater(). Et si vous voulez obtenir un gonfleur dans l'adaptateur, vous devez passer l'objet gonfleur au constructeur de l'adaptateur de votre activité.

Questions connexes