1
單擊按鈕時,我想從SQLite獲取數據ID。不幸的是我的應用程序崩潰。當我嘗試從SQLite中檢索數據ID時會發生這種情況。嘗試從SQLite獲取ID時,應用程序崩潰
logcat的
05-17 01:00:54.873 16093-16093/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:68)
at com.example.tony.easyactivity.MainActivity$1.onClick(MainActivity.java:49)
49號線
int id = data.getInt(data.getColumnIndex("ID"));
任何幫助將非常感激。
我曾嘗試:
btnAddData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.insertData(editName.getText().toString());
if (isInserted) {
Cursor data = myDb.getID(editName.getText().toString());
int id = data.getInt(data.getColumnIndex("ID"));
Toast.makeText(getApplicationContext(), id + "", Toast.LENGTH_LONG).show();
}
else
{
myDb.addData(editName.getText().toString());
Toast.makeText(getApplicationContext(), "Not yet inserted ", Toast.LENGTH_LONG).show();
}
}
});
}
DatabaseHelper
public Cursor getID(String info) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("Select ID from " + TABLE_NAME1 + " WHERE " + COL3 + "=?", new String[]{info});
return c;
}
public boolean insertData(String name) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("Select * from " + TABLE_NAME1 + " WHERE " + COL3 + "=?", new String[]{name});
if (c.getCount() > 0) {
return true;
} else
return false;
}
public void addData(String name) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(COL3, name);
db.insert(TABLE_NAME1, null, cv);
}
非常感謝! –