Ich arbeite an meiner ersten Android-App und habe eine SQLite-Datenbank eingerichtet und damit arbeiten, ich konnte erfolgreich einen Cursor verwenden, um einige Daten abzurufen und verwendet SimpleCursorAdapter, um die Daten als eine Liste erscheinen zu lassen.Wie kann ich Daten von einem einzelnen Feld in eine Variable aus einer SQLite-Datenbank bekommen?
ich jetzt zu suchen rufen Sie ein bestimmtes Feld und das Ergebnis in eine Variable vom Typ float setzen. Alle Beispiele, die ich online finde, scheinen jedoch zu erwarten, dass Sie große Retrievals mit mehreren Zeilen/Spalten verarbeiten und sie alle in Listen oder Arrays angepasst wurden. Ich kann nicht herausfinden, wie man nur den Inhalt dieses einen Feldes in eine Variable bringt.
Ich versuchte mit myVariable = cursor.getFloat(0)
, die ich denke, ist entlang der richtigen Linie, aber ich konnte das nicht funktionieren entweder.
Jedes Mal, wenn ich meine Anwendung ausführen, bekomme ich nur null pointer exception
Fehler, ich habe versucht, einige try catch
Blöcke, aber ich bin neu zu all dem im Allgemeinen und hatte keinen Erfolg bei der Fehlersuche. Es könnte etwas ein einfaches wie eine Abfrage Tippfehler sein.
Ich werde das Bit Code unten beteiligt, aber alle Vorschläge allgemein oder spezifisch sind willkommen, Danke, dass Sie sich die Zeit zu sehen.
public void Main(){
//gets the rowId we put with the intent from Budget.java, sets a default value of -1 'incase.
selectedRowId = getIntent().getLongExtra("rowId", -1);
Cursor costCursor= FindBudgetForId(selectedRowId);
MyText(costCursor, selectedRowId);
}
public Cursor FindBudgetForId(long selectedRowId){
SQLiteDatabase db = budgetData.getWritableDatabase();
String rowBudgetQuery = "SELECT BUDGET_AMOUNT FROM CAT_BUD_TAB WHERE _ID="+ selectedRowId;
Cursor c = db.rawQuery(rowBudgetQuery,null);
startManagingCursor(c);
return c;
}
public void MyText(Cursor costCursor, long selectedRowId){
TextView whatDoText=(TextView)this.findViewById(R.id.keypad_text);
whatDoText.setText("row: " +(String.valueOf(selectedRowId)));
//set the current budget amount in the edit text box
retrievedAmount = costCursor.getFloat(3);
EditText inputHint=(EditText)this.findViewById(R.id.cost_input);
inputHint.setText((String.valueOf(retrievedAmount)));
}
Ihre Abfrage wählt nur 1 Feld, so dass der Index 3 ist außerhalb der Grenzen. Sie sollten cursor.getFloat (0) –
@king_nak verwenden: natürlich danke für das Hinzeigen, noch kann es nicht laufen, aber das ist ein Fehler weniger danke! – Holly