1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

listView

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von matth1as, 11.05.2010.

  1. matth1as, 11.05.2010 #1
    matth1as

    matth1as Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    4
    Registriert seit:
    10.04.2010
    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 ?
     
  2. koelly, 11.05.2010 #2
    koelly

    koelly Junior Mitglied

    Beiträge:
    28
    Erhaltene Danke:
    10
    Registriert seit:
    30.01.2010
    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
     
    chemistry bedankt sich.
  3. matth1as, 11.05.2010 #3
    matth1as

    matth1as Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    4
    Registriert seit:
    10.04.2010
    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
     
  4. koelly, 12.05.2010 #4
    koelly

    koelly Junior Mitglied

    Beiträge:
    28
    Erhaltene Danke:
    10
    Registriert seit:
    30.01.2010
    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
     
  5. vogella, 15.08.2011 #5
    vogella

    vogella Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    10
    Registriert seit:
    14.06.2010
    Du mußt ein eigenes Layout verwenden und ArrayAdapter erweitern. Ein Beispiel findest Du hier: Android ListView Tutorial.
     
  6. andi-03, 19.08.2011 #6
    andi-03

    andi-03 Junior Mitglied

    Beiträge:
    32
    Erhaltene Danke:
    0
    Registriert seit:
    14.01.2011
    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 :)
     

Diese Seite empfehlen