2017-08-24 5 views
0

Ich entwickle eine Android-App, in der es eine Aktivität mit vielen Schaltflächen geben wird. In jedem von ihnen muss ich einen bestimmten Eintrag aus einer vorhandenen SQLite-Datenbank anzeigen. Wenn Sie eine Taste drücken, wird ein Popup-Fenster mit einem TextView angezeigt, das den Eintrag der Datenbank anzeigt, die ich gesagt habe. Beispiel: Wenn Sie die Taste 1 drücken, wird Ihnen der Eintrag mit der ID-Nummer 1 angezeigt.So zeigen Sie in der Textansicht einen Eintrag aus der vorhandenen SQLite-Datenbank an

Ich habe SQLite Asset Helper verwendet, um meine vorhandene Datenbank zu bekommen, aber ich kann nicht herausfinden, wie ich meine Einträge in ihren Fenstern und Ich konnte nichts online finden.

Meine Klasse Meinedatenbank für SQLite

import android.content.Context; 

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; 


public class MyDatabase extends SQLiteAssetHelper { 

private static final String DATABASE_NAME = "mydatabase1.db"; 
private static final int DATABASE_VERSION = 1; 

public MyDatabase(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 

} 


} 

Meine Pop-Klasse für das Pop-up-Fenster

import android.app.Activity; 
import android.os.Bundle; 
import android.util.DisplayMetrics; 

public class Pop extends Activity{ 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.popwindow); 

    DisplayMetrics dm= new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 

    int width = dm.widthPixels; 
    int height = dm.heightPixels; 

    getWindow().setLayout((int)(width*.8),(int)(height*.6)); 
}} 

Bitte um Hilfe!

+0

Das Arbeiten mit Datenbanken wird in der Dokumentation sowie Büchern und Kursen zur Entwicklung von Android-Apps behandelt. Sie zeigen Ihnen, wie Sie mit 'getReadableDatabase()' und 'rawQuery()' Daten aus Ihrer 'MyDatabase'-Klasse abrufen können. Das Setzen von Text in einer 'TextView', über' findViewById() 'und' setText() ', wird an unzähligen Stellen jenseits der erwähnten erwähnt. Also, all das, was ** speziell ** kannst du nicht finden? – CommonsWare

Antwort

0

Sie extrahieren Daten aus der Datenbank, indem Sie eine Abfrage ausführen, die auf SQL basiert. Die Abfrage gibt einen Cursor zurück, der aus Datenzeilen besteht.

Sie dann die Daten aus den Cursor extrahieren, dann ist es nur eine Frage der Verwendung der setText Methode der Textansicht.


eine Datenbank Unter der Annahme hat eine einzige Tabelle namens Mytable, die eine einzelne Spalte mycolumn benannt hat. Dann

Die SQL SELECT * FROM mytable sein könnte (dies sagt alle wählen (*) Spalten aus dem Tabellennamen Mytable.), Abwechselnd die SQL SELECT mycolumn FROM mytable sein könnte (in diesem Fall bestimmte Spalte genannt wurde).

Die SQL, wie oben könnte mit der Methode SQLiteDatabase rawQuery z. (wo db ist ein SQLiteDatabase)

Cursor mycursor = db.rwaQuery("SELECT * FROM mytable",null);

Das bevorzugte Verfahren ist jedoch die bequeme Methode SQLiteDatabase query zu verwenden.

z.B.

Cursor mycusror = db.query("mytable",String[]{"mycolumn"},null,null,null,null,null,null); 

oder alternativ

Cursor mycusror = db.query("mytable",null,null,null,null,null,null,null); 

(dies wird alle Spalten d.h. 2. Parameter ist null).

Ein Cursor kann 0 oder mehr Zeilen enthalten, und Sie können sich durch den Cursor bewegen, indem Sie Cursor move Methoden z. mycursor.moveToNext(). Wenn Sie entsprechend positioniert sind, verwenden Sie dann eine der Methoden Cusror get, z. getString zum Abrufen der Daten.

Unter der Annahme, dass Ihre Abfrage nur eine einzige Zeile erhalten könnte (zB die WHERE-Klausel enthält _id = 1), dann könnten Sie beispielsweise Verwendung: -

if (mycursor.getCount() == 1) { 
    String mytext = mycursor.getString(mycursor.getColumnIndex("mycolumn")); 
    mytextView.setText(mytext); 
} 
mycursor.close(); 

abwechselnd die folgenden würde auch als die move Methoden funktionieren wird return false, wenn der Umzug nicht möglich ist: -

while (mycursor.moveToNext) { 
    String mytext = mycursor.getString(mycursor.getColumnIndex("mycolumn")); 
     mytextView.setText(mytext); 
} 
mycursor.close(); 
Verwandte Themen