2011-01-03 3 views

Antwort

1

Sie benötigen einen ExpandableListAdapter verwenden, wo man verschiedene Arten von Ansichten je nachdem, welche Gruppe das Einzelteil ist in.

Sie also in der Liste Adapter

außer Kraft setzen
getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) 

und tun Sie etwas in Abhängigkeit von der groupPosition, zum Beispiel

getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
if (groupPosition == 0) return text views for this child 
if (groupPositon == 1) return image views for this child 
} 

Das sollte Ihren Anfang haben. Es ist ziemlich einfach von dort.

+0

Dank monkjack :) Ich werde das ausprobieren und lassen u wissen. – Neha

+0

Hey moonjack, ich habe versucht, so wie du es gesagt hast, aber jedes Kind zeigt mir sowohl die Textansicht als auch die Bilder, während ich in der Bedingung lege, dass ich Text nur in den ersten und zweiten Abschnitten und Bild in den restlichen zwei anzeigen möchte. Kannst du mir helfen? Plz sag mir das, wo ich falsch liege. Ich kann meinen kompletten Quellcode wegen des weniger Platzes nicht posten, also posten ich eine andere Frage, wo ich Quellcode posten werde. Willst du es anschauen und versuchen zu sagen, was schief läuft? – Neha

+0

hast du Problem lösen .. Es scheint, es ist nur "nicht perfekt" wenn-sonst Logik .. bitte schreiben Sie über Ihre Lösung oder akzeptieren gegebene Antwort .. 10q – Ewoks

0

Wenn Sie CursorTreeAdapter erweitern, um Ihren ExpandableListAdapter zu erstellen, sollten Sie die verschiedenen Sichtenarten in newChildView() verwalten und sie in bindChildView() binden. Sie können die Daten im Cursor verwenden, um zwischen den verschiedenen Fällen zu unterscheiden.

Beispielcode

@Override 
    protected View newChildView(
     Context context, 
     Cursor cursor, 
     boolean isLastChild, 
     ViewGroup parent) 
    { 
     LayoutInflater mInflater = LayoutInflater.from(context); 
     String firstColumnName = cursor.getColumnName(0); 
     if(firstColumnName.equals("_id")) { 
      return mInflater.inflate(R.layout.main_list_item, parent, false);     
     } else if(firstColumnName.equals("name")){ 
      return mInflater.inflate(R.layout.search_list_item, parent, false);     
     } else { 
      throw new IllegalArgumentException("Unknown firstColumnName:" 
       + firstColumnName); 
     } 
    } 

    @Override 
    protected void bindChildView(
     View view, 
     Context context, 
     Cursor cursor, 
     boolean isLastChild) 
    { 
     String firstColumnName = cursor.getColumnName(0); 
     if(firstColumnName.equals("_id")) { 
      bindMainView(view, context, cursor, isLastChild); 
     } else if(firstColumnName.equals("name")){ 
      bindSearchView(view, context, cursor, isLastChild); 
     } else { 
      throw new IllegalArgumentException("Unknown firstColumnName:" 
       + firstColumnName); 
     } 
    } 
Verwandte Themen