2016-04-19 6 views
0

Ich habe eine Listview mit CustomArrayAdapter,hinzufügen unterschiedliche Anzahl von Textviews zu Linearlayout Haltern in ArrayAdapter

will dynamisch unterschiedliche Menge an Textviews zu Linearlayout Halter hinzufügen, dass Listview (wie Liste des Textviews in jeder Zeile)

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    final ViewHolder holder; 
    //String menu_opcja = getItem(position); 
    SupleSubClass supleSubClass = getItem(position); 


    if (convertView==null){ 
     convertView = inflater.inflate(R.layout.suplementacja_row, null); 
     holder = new ViewHolder(); 
     holder.suplement = (TextView) convertView.findViewById(R.id.nazwa_suplementu); 
     holder.opis = (TextView) convertView.findViewById(R.id.descr); 
     holder.linearLayout = (LinearLayout)convertView.findViewById(R.id.linear_layout_test); 
     convertView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.suplement.setText(supleSubClass.getName()); 
    holder.opis.setText(supleSubClass.getDescr()); 
    holder.linearLayout.setBackgroundColor(Color.CYAN); 


    return convertView; 

} 


private static class ViewHolder{ 
    TextView suplement; 
    TextView opis; 
    LinearLayout linearLayout; 

} 

enter image description here

+0

müssen Sie nicht eine 'ExpandableListView' verwenden? – pskink

Antwort

0

Wenn Sie wissen, wie viele Arten von Layout müssen Sie es ist möglich, Verfahren zu verwenden:

getViewTypeCount() 

Diese Methode sollte die Gesamtanzahl der eindeutigen Layouts zurückgeben.

Der nächste Schritt ist die Schaffung Methode:

getItemViewType(int position) 

, was das Layout zu verwenden, für die gegebene Position informiert.

In getView() müssen Sie das Layout nur aufzublasen, wenn es null ist und bestimmen das Layout von getItemViewType (Position)

Einzelheiten siehe this tutorial

Verwandte Themen