Mehrere Zeilen in ListView

H

Hoerti

Neues Mitglied
1
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
 
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
 
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?
 
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

A
Antworten
10
Aufrufe
1.021
swa00
swa00
D
Antworten
23
Aufrufe
2.554
Data2006
D
D
Antworten
9
Aufrufe
1.768
jogimuc
J
Zurück
Oben Unten