2010-11-21 16 views
0

Meine App verwendet eine einfache SQLite Datenbank. Alles funktioniert gut ich jetzt ein Toast mit einer ausgewählten Reihe von der Rückkehr Abfrage präsentieren:Android populate Listenansicht mit Cursor

{ 
    //etc etc etc... 

    c.movetofirst(); 
    DisplayTitle(c); 
} 
public void DisplayTitle(Cursor c) 
{ 
    Toast.makeText(main.this, 
      "id: " + c.getString(0) + "\n" + 
      "reg: " + c.getString(1) + "\n" + 
      "type: " + c.getString(2) + "\n", 
      Toast.LENGTH_LONG).show();   
} 

Ich mag den Bildschirm all Daten in dem Cursor prsent eine Ansicht verwenden, aber ich bin nicht sicher, wie es weiter gehen darüber. Welche Ansicht sollte ich verwenden? Ich wollte nur eine einfache Rasterdarstellung, die es mir erlaubt, durch jede Zeile im Cursor zu scrollen.

Vielen Dank im Voraus.

Antwort

2

Wie kann ich ALLE Zeilen im Cursor anzeigen?

Es gibt mehrere Möglichkeiten, wenn Sie mit einem Cursor, zum Beispiel finden Sie in der „moveTo“ verwandte Methoden arbeiten, hier ein Beispiel:

Set<Item> items = new HashSet<Item>(c.getCount()); 
if (c.moveToFirst()) { 
      do { 
       Item i = new Item(select(c.getString(0), c.getString(1), c.getString(2)); 
       set.add(i); 
      } while (c.moveToNext()); 
     } 
     if (!c.isClosed()) { 
      c.close(); 
     } 

Diese Item geht davon ist eine Datenklasse, die einen Konstruktor mit drei String Parametern. Gehen Sie mit Ihrem Code, ID, reg und type. Normalerweise wird Spalte 0 eine numerische ID sein (nicht getString, aber SQLite verwendet "manifest typing", also wird dyna-type ein String/Long aus Spalte 0 - Sie möchten vielleicht AUTOINCREMENT und benutzen dort getLong).

Wenn Sie eine Sammlung von Elementen haben, können Sie mit ihnen alles tun, um sie anzuzeigen. Wenn Sie eine scrollende/auswählbare Liste wünschen, dann ist ListView eine ausgezeichnete Wahl. Und Sie können es mit einer CursorAdapter unterstützen.

Hier ist ein Beispiel eines ListView, die von einem CursorAdapter von einem Open-Source-Projekt aufgefüllt wird: http://code.google.com/p/and-bookworm/source/browse/trunk/src/com/totsp/bookworm/Main.java (siehe die innere BookCursorAdapter Klasse, es sollten Sie in die richtige Richtung bekommen hingewiesen).

+0

Ich habe bereits eine Methode zum Auffüllen des Cursors mit allen Zeilen in der Tabelle, was ich fragen ist, wie man dies auf dem Bildschirm präsentiert. Ich möchte eine Ansicht verwenden, um alle Daten im Cursor auf dem Bildschirm darzustellen. Entschuldigung Wenn ich nicht ganz klar war! – brux

+0

Ich habe die Antwort aktualisiert, nachdem Sie die Frage aktualisiert haben;). Wenn Sie ein einfaches scrollbares "Gitter" wünschen und Sie bereits den Cursor haben, dann ist ListView/CursorAdapter das Ticket. –

+0

Vielen Dank für den Link im Blick – brux