- Demo: https://github.com/tokinonagare/AndroidStudioSQLiteSample
/app/src/main/java/com/tokinonagare/sqlitesample/MyDBHandler.java
Cursor
//Move to the first row in your results
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
if(cursor.getString(cursor.getColumnIndex("productname"))!= null) {
sqLiteDatabaseString += cursor.getString(cursor.getColumnIndex("productname"));
sqLiteDatabaseString += "\n";
}
}
在这一段涉及Cursor取数据的代码中, 会出现点击addButton时, app卡死的情况, 内存似乎一直在益处, 感觉缺少终止代码.
研究了一下Cursor的方法后使用了如下代码替换, 解决了问题
while (cursor.moveToNext()){
if(cursor.getString(cursor.getColumnIndex("productname"))!= null) {
sqLiteDatabaseString += cursor.getString(cursor.getColumnIndex("productname"));
sqLiteDatabaseString += "\n";
}
}
cursor.close();
Query
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query = "CREATE TABLE " + TABLE_PRODUCTS + " ( " +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_PRODUCTNAME + " TEXT " +
");";
sqLiteDatabase.execSQL(query);
}
AUTOINCREMENT, 这个逗号是为了避免出现 near的 Error 问题添加的.