Anzeige der Cursor-Ergebnisse aus DB in Liste nach OnItemClick
Ich habe eine Tätigkeit, wo ich will zeigen Ergebnisse aus einer Datenbank mit ListView. Die Tabelle hat drei Spalten: Wort, Bezeichnung und Kategorie. Auf der Seite der Aktivitäten, habe ich eine Liste von Kategorien, dass Lesen aus einem array. Ich will es so einrichten, dass, wenn Sie klicken Sie auf ein Element in der Liste (zum Beispiel Cat1), die Ergebnisse der cursor wird alle Worte/Beschreibungen mit der Kategorie Cat1 in der DB. Derzeit habe ich einfach ein Toast mit dieser Kategorie-Namen angezeigt, wenn geklickt wird.
So wie es jetzt ist, die Aktivität nicht richtig ausgeführt. Ich habe gelesen, um auf dem web, und bin mir nicht sicher, wie Sie Vorgehen. Hier ist der code, den ich bisher haben. Wer kann mir helfen, ich würde schätzen es wirklich.
public class Kategorien extends ListActivity {
DataBaseHelper db = new DataBaseHelper ();
private SQLiteDatabase Daten;
int position;
private ListView list;
private String[] categories = {
"C1", "C2", "C3", "C4",
"C5", "C6", "C7", "C8",
"C9", "C10", "C11", "C12"
};
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.cat_list);
list = (ListView)findViewById(R.id.cat_listing);
list.setAdapter(new ArrayAdapter<String>(this,
R.layout.categories, categories));
list.setTextFilterEnabled(true);
Cursor cursor = data.rawQuery("SELECT term, desc FROM words WHERE cat = '" + categories[position] + "'", null);
startManagingCursor(cursor);
String columns[] = new String[] { "term", "desc" };
int[] to = new int[] { R.id.cat_term, R.id.cat_desc };
SimpleCursorAdapter myAdapter = new SimpleCursorAdapter(this, R.layout.cat_result, cursor, columns, to);
this.setListAdapter(myAdapter);
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id){
CharSequence text = categories[position];
Toast toast = Toast.makeText(getApplicationContext(),
text, Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
InformationsquelleAutor Devin | 2010-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine ähnliche Funktion in meiner app. Sie müssen zum erstellen einer XML-Datei definieren Sie das layout für die Liste und rufen Sie in Ihrem java-code.
Hier ist die Beispiel-XML:
LISTE:
Dies ist die benutzerdefinierte layout-XML. Ich nenne es list_rows:
- Und das ist der JAVA-code:
Den onListItemClickListener
Was der neue Teil des Codes macht, ist nur das senden der ausgewählten Nachricht an eine andere Tätigkeit, durch die der Absicht. Dann in der neuen Tätigkeit, bin ich die Abfrage der DB mit dem ausgewählten Element name aus dem bundle und das Ergebnis angezeigt wird.
Haben zu Fragen, ob Sie die weiterer Erläuterung bedürfen.
Hinzufügen von zusätzlichem code. Überprüfen Sie die original-post.
Ich bin wirklich Leid, aber ich habe Probleme hier. Ich verstehen, was ist beteiligt bei der Vorbereitung der Cursor und die Schaffung eines SimpleCursorAdapter. Aber ich will nicht eine neue Aktivität. Ich will es so, wenn jemand klickt auf ein Element in der Liste, es wird die Abfrage der DB und zurückgeben einer Liste aller Wörter, die in die Kategorie, die angeklickt wurde. Ich habe versucht, den code, den Sie geschrieben, und ich am Ende mit, um zu erzwingen, beenden Sie beim öffnen, dass die Aktivität (ich kann nicht einmal auf der Liste Kategorie, um zu testen). Der code, den ich oben gepostet hast funktioniert, wenn Sie entfernen Sie den SimpleCursorAdapter Erklärung und die setListAdapter Aufruf in der nächsten Zeile.
InformationsquelleAutor Siddharth Lele
Bin ich ein sehr ähnliches Programm. Ich habe Probleme mit ihm, da seine mein erstes Programm für android - /java. Helfen, was ich habe, ist aus web und mein Stiefvater, die Sie verwenden, um zu lehren java.
Wenn ich mir das setup eine Datenbank, erklärte er auf meine setup-Tabellen, so Kategorien gekoppelt ist mit Gegenständen nach ihm. So hätten Sie einen Tisch für Ihre Kategorien, einschließlich der Titel, den Sie anzeigen für diese Kategorie als auch als Primärschlüssel. Dann brauchen Sie einen Tisch für die nächste Ebene nach unten von der Kategorie, sagen Titel. Dies würde einen text für Titel-und primary key. Als Nächstes müssen Sie, um eine andere Tabelle, um Sie zu verbinden. Ein Titel-Taste, category-Taste, und primary key.
Von dort aus werden Sie brauchen, um zu sagen, java, um Sie zu verbinden, bis auf der Grundlage, dass die Letzte Tabelle.
Ich bin ein noob also sorry, konnte ich nicht geben, mehr/bessere info. Aber alles andere finde ich zu diesem Thema poste ich hier, und viel Glück.
InformationsquelleAutor maebe