Mehrere Zeilen in ListView

  • 3 Antworten
  • Neuester Beitrag
Diskutiere Mehrere Zeilen in ListView im Android App Entwicklung im Bereich Betriebssysteme & Apps.
H

Hoerti

Neues Mitglied
Hallo zusammen,

allem voran gleich einmal muss ich sagen dass ich nun schon sehr lange an diesem Problem herumtüfftle, hätte nicht gedacht dass ich daran so lange hänge.

Es geht ganz simpel gesagt darum ein Bild und zwei TextViews in einem ListView-Element anzuzeigen.

Dazu habe ich eine eigene xml-Datei erstellt:

Code:
   <ImageView
        android:id="@+id/icon"
        
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip"
        
        android:src="@drawable/ic_launcher" />

    <TextView  
        android:id="@+id/secondLine"

        android:layout_width="fill_parent"
        android:layout_height="26dip" 
            android:textColor="#0099CC"
        android:layout_toRightOf="@id/icon"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="Secondline" />

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
            android:textColor="#0099CC"
        android:layout_toRightOf="@id/icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_above="@id/secondLine"
        android:layout_alignWithParentIfMissing="true"
                
        android:gravity="center_vertical"
        android:text="My Application" />

</RelativeLayout>

Nun möchte ich in meiner MainActivity diese natürlich befüllen.
Code:
	public void listview_fuellen(){
		DBHelper db = new DBHelper(this);
	
		
		ListView lv = (ListView) findViewById(R.id.lvKinder);
		Cursor c = db.select();
		int count = c.getCount();
		
		TextView tv = (TextView) findViewById(R.id.secondLine);
		List<String> auswahl = new ArrayList<String>();
		List<String> auswahl1 = new ArrayList<String>();
        int i = 0;
        System.out.println("$$$$$$$$$$$$$$$$$$$$$$$1" + c.getCount());
        while(c.moveToNext())
        { 
        	//map = new HashMap<String, String>();
            
           auswahl.add(c.getString(i).toString());
            //System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS" + auswahl.get(i).toString());
            
            i++;
        }
        

       ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_black_text,R.id.firstLine, auswahl);

        
        
        lv.setAdapter(adapter);
       
	}
Genau hier liegt auch mein Problem, welches ich auch mit sehr langer Internetrecherche nicht lösen kann. Wie bekomme ich es hin, dass ich auch TextView2 und das Icon in meinem neuen Layout, welches ich ja für ArrayAdapter gesetzt habe, befüllen kann?

Hoffe jemand kann mir helfen, wollte bei so einem vermeintlich einfachen Thema eigentlich nicht so lange hängen bleiben.

Mfg
Hoert
 
D

dthiess

Ambitioniertes Mitglied
Hi,

du musst dir dafür einen eigenen Listadapter schreiben. In getView kannst du dann dein Layout füllen.

Ist hier auch ganz gut erklärt:
Android ListView - Tutorial
 
H

Hoerti

Neues Mitglied
Habe dieses Tutorial bereits durchgesehen, wird oft auf dieses verwiesen in diversen Foren.

Kapiere jedoch den Zusammenhang nicht ganz. Ich möchte die ListView in meiner MainActivity befüllen und nicht in einer eigenen Klasse. Ist dies möglich?
 
D

dthiess

Ambitioniertes Mitglied
Du müsstest den ArrayAdapter den du momentan verwendest gegen einen eigenen austauschen den du von ArrayAdapter oder auch zB einem BaseAdapter ableitest. So kannst du ein eigenes Layout für die ListItems nutzen und mit dem LayoutInflater in getView befüllen. Am Rest würde sich ja für dich nichts ändern.
 
Ähnliche Themen - Mehrere Zeilen in ListView Antworten Datum
0
Ähnliche Themen
Höhe von ListView ermitteln