Android Code Snipplets – Liste mit 2 Zeilen pro Element

Bei diesem Snipplet geht es darum, in einer ListActivity die einzelnen Elemente mit 2 Zeilen zu füllen.

 

Angewendet sieht das ganze dann folgendermaßen aus:

2 zeilige ListActivity

9 Kommentare


  1. Hi Henrik,

    ich bin gestern auf ihren Blog gestoßen und fand das mit der „2 item Liste“ so interessant , dass ich es heute versucht hab umzusetzen.
    Nur leider hab ich das Problem, das meine Liste zwar angezeigt wird aber sie immer leer.

    Deshalb wollte ich mal fragen ob Sie vieleicht eine Lösung wüssten bzw. ich nocht was zum Code hinzufügen muss als das oben genannte.

    MFg Titus

    Antworten

    1. Hallo Titus,
      an sich sollte der Code so vollständig sein – ich hab Ihn auch grade nochmal als 1 zu 1 Kopie getestet und er funktioniert.
      Vielleicht ist deine Klasse keine ListActivity oder du hast den Code nicht im onCreate() drin stehen?
      Falls doch poste doch einfach mal deinen Source und ich schau drüber.

      Grüße!

      Antworten

  2. Hi,

    ok das hier ist die Java Datei:

    import android.app.ListActivity;
    import android.database.MatrixCursor;
    import android.os.Bundle;
    import android.widget.SimpleCursorAdapter;

    public class main extends ListActivity {

    private String TAG = main.class.getSimpleName();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String[] matrix = {„_id“,“stadtname“,“entfernung“};
    String[] columns = {„stadtname“,“entfernung“};
    int[] layout= {R.id.text1,R.id.text2};
    int key = 0;

    MatrixCursor cursor = new MatrixCursor(matrix);

    cursor.addRow(new Object[]{key++,“saarbrücken123″, „123 km“});
    cursor.addRow(new Object[]{key++,“saarbrücken555″, „555 km“});

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, columns,layout);

    setListAdapter(adapter);

    }
    }

    so und das ist die xml in der Text1 und Text2 beschrieben sind:

    Antworten

  3. mmhh ok da der code der XML hier nicht angezeigt wird schreib ich es mal so hin:

    Linearlayout
    android:layout_width=“wrap_content“
    android:layout_height=“wrap_content“

    TextView
    android:id=“@+id/text1″
    android:layout_width=“fill_parent“
    android:layout_height=“wrap_content“

    TextView
    android:id=“@+id/text2″
    android:layout_width=“fill_parent“
    android:layout_height=“wrap_content“

    XML ende!

    Antworten

    1. Mach mal die XML komplett weg, text1 und text2 müssen nicht explizit beschrieben werden sondern kommen schon vom Framework her mit und die ListActivity liefert ihr Layout auch schon mit.

      Grüße!

      Antworten

  4. Ok hab mir eben noch mal ihren Code angesehen und dabei meinen Fehler gefunden.

    ich hab die zeile „final int[] layouts = new int[] { android.R.id.text1, android.R.id.text2 };“ immer als „final int[] layouts = new int[] { R.id.text1, R.id.text2 };“ gelesen.

    tja richtig lesen muss auch gelernt sein.

    aber trotzdem danke für dasd angebot meinen code durch zu sehen.

    Mfg Titus

    Antworten

    1. Fieser Schreibfehler – hab ihn ja auch übersehen 😀

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.