Я работаю над своим первым приложением для Android и настроил базу данных SQLite и работаю с ней. Я смог успешно использовать курсор для извлечения некоторых данных и использовать SimpleCursorAdapter, чтобы данные отображались в виде списка.
Сейчас я ищу для извлечения определенного поля и для помещения результата в переменную типа float .Однако все примеры, которые я нахожу в Интернете, похоже, ожидают, что вы будете обрабатывать большие операции поиска с несколькими строками / столбцами, и все они были адаптированы в списки или массивы. Я не могу понять, как просто получить содержимое этого одного поля в переменную.
Я пытался использовать myVariable = cursor.getFloat(0)
, который, я думаю, идет по правильным линиям, но я не мог 'это тоже не работает.
Каждый раз, когда я запускаю свое приложение, я просто получаю null pointer exception
ошибки, я пробовал некоторые блоки try catch
, но я новичок во всем этом в целом и не имеллюбой успех в устранении неполадок.Это может быть что-то простое, например, опечатка запроса.
Я включу приведенный ниже фрагмент кода, но любые предложения общего или конкретного характера приветствуются. Спасибо, что нашли время посмотреть.
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)));
}