나는 첫 번째 안드로이드 응용 프로그램을 만들고 SQLite 데이터베이스를 설정하고 작업하고 있습니다. 커서를 사용하여 일부 데이터를 검색하고 SimpleCursorAdapter를 사용하여 데이터를 목록으로 표시했습니다.단일 필드의 데이터를 SQLite 데이터베이스의 변수로 가져 오는 방법은 무엇입니까?
이제 을 찾고과 의 결과를 float 변수에 넣으십시오. 그러나 내가 온라인으로 찾은 모든 예제는 여러 행/열을 가진 대규모 검색을 처리 할 것으로 기대되는 것으로 보이며 모두 목록이나 배열에 적용되었습니다. 나는 하나의 필드의 내용을 변수로 가져 오는 방법을 알 수 없다.
내가 올바른 줄을 따라 있다고 생각하는 myVariable = cursor.getFloat(0)
을 사용해 보았지만 그 중 하나라도 작동하지 못했습니다.
난 내 응용 프로그램을 실행할 때마다 null pointer exception
오류가 발생하지만, 나는 try catch
블록을 시도했지만 일반적으로이 모든 것을 처음 접했고 문제 해결에 성공하지 못했습니다. 그것은 쿼리 오타 (query typo)와 같은 간단한 것일 수 있습니다.
아래에 포함 된 약간의 코드를 포함 시키겠습니다. 그러나 일반적인 제안이나 특정 제안은 환영합니다. 시간을내어 주셔서 감사합니다.
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)));
}
같은 데이터를 얻을 수 있습니다. 당신은 cursor.getFloat (0) –
@king_nak를 사용해야합니다 : 물론 그 점을 지적 해 주셔서 감사합니다, 아직도 위선적 인 말로 표현할 수는 있지만 그다지 실수하지 마세요! – Holly