listView

M

matth1as

Neues Mitglied
4
hi ,hab ma ne frage

hab mehre Objekte in nem Arrayadapter.

die Objekte haben alle ne toString methode die ja auch aufgerufen wird - wird in der Listview angezeigt.

Ich will aber gerne sowas haben:
Normaler Text
und darunter soll in kleinerer Schrift ne beschreibung stehen.

gibts da was fertiges für ?
 
Copy/Pasta aus einem meiner Programme:

In deinem Programm:
Code:
...
SimpleAdapter sa = new SimpleAdapter(this, list, R.layout.list_item, new String[] { "name", "price" }, new int[] {R.id.name, R.id.price });
        setListAdapter(sa);
...
In deiner main.xml ein ganz normales Listview:
Code:
...
    <ListView 
        android:id="@id/android:list" 
        android:textSize="25sp"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content">
    </ListView>
...
Und jetzt das "Besondere". Eine list_item.xml im layout Verzeichnis.
Hier wird beschrieben wie jedes einzelne Listenelement aussehen soll.
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView 
        android:text="dfgdgdfgdfgdfg" 
        android:id="@+id/name" 
        android:textSize="16sp"
        android:textStyle="bold"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
    </TextView>
    
    <TextView 
        android:text="1234566778" 
        android:id="@+id/price" 
        android:textSize="11sp"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
    ></TextView>
</LinearLayout>
Gruß,
Kölly
 
  • Danke
Reaktionen: chemistry
Danke erstmal,
das hat mir schon etwas weitergeholfen.

habe aber folgende Situation:

hab ne Klasse Mannschaft mit 3 Attributen:
String Name,
String Bezeichnung
int ID

Hab mehrere Mannschaften in nem Vector.
Will jetzt auf der Listview in großer Schrift "Name" und darunter etwas kleiner "Bezeichnung" haben.

wie würdest du das angehen ?
danke schonma
 
matth1as schrieb:
wie würdest du das angehen ?

So wie ich das oben beschrieben habe :confused:

Code:
// Arrayliste initialisieren, die Hashmaps mit den beiden Strings beinhaltet:
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

// Ein einzelnes item der Arrayliste oben initialisieren
HashMap<String, String> item;

// Anfang deiner Schleife etc...
item.put("name", variableMitDemNamen );
item.put("beschreibung",  variableMitDerBeschreibung);
list.add(item);
// Ende deiner Schleife etc...

// Listview malen...
SimpleAdapter sa = new SimpleAdapter(this, list, R.layout.list_item, new String[] { "name", "beschreibung" }, new int[] {R.id.name, R.id.price });
setListAdapter(sa);

Deine ID ist vermutlich ja erstmal egal bei der Ausgabe, daher vernachlässigbar.

Keine Ahnung ob es so "richtig" ist, aber in meinem Programm funktionierts.

Gruß,
Kölly
 
Du mußt ein eigenes Layout verwenden und ArrayAdapter erweitern. Ein Beispiel findest Du hier: Android ListView Tutorial.
 
Hi,

es gibt ein twoLineListItem, vllt hilft dir das, falls du was "fertiges" willst. Kenne nur den Namen, hab's mir nicht näher angeschaut.
Ich würde aber empfehlen, dir deine Listeneinträge selbst zu gestalten, wie schon erwähnt - man hat damit einfach viel mehr Möglichkeiten.
Mach mal das vogella-Tut dazu durch, dann bist du schon mal gut gerüstet:
Android ListView and ListActivity - Tutorial
Wenn's Probleme gibt, kann ich morgen mal versuchen, dir 'nen Beispielcode zu geben.

Viel Erfolg!

edit: Da hab ich doch glatt den Post über mir überlesen - und wer ist es? Vogella himself - das passt ja :)
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.018
swa00
swa00
D
Antworten
9
Aufrufe
1.762
jogimuc
J
J
  • JoEntwickler
Antworten
0
Aufrufe
973
JoEntwickler
J
Zurück
Oben Unten