我的应用程序有多个 SQLite 表(大约 20 个不同的字段)。这是我使用适配器类创建的(这里我刚刚提到了一个类游戏,就像我有 20 个)。
public class MyDbAdapter {
private SQLiteDatabase mDb;
private static MyDatabaseManager mDbManager;
Context ctx;
public MyDbAdapter(Context context) {
this.ctx = context;
mDbManager = new MyDatabaseManager(context);
mDb = mDbManager.getWritableDatabase();
}
public static final class GameColumns implements BaseColumns {
public static final String TABLE = "game";
public static final String IMEI = "imei";
public static final String LAST_UPDATE = "lastupdate";
public static final String NICKNAME = "nickname";
}
private static class MyDatabaseManager extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "dbname";
private static final int DATABASE_VERSION = 8;
private MyDatabaseManager(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
createGameTable(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+GameColumns.TABLE);
onCreate(db);
}
@SuppressWarnings("unused")
private void dropDatabase(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS " + GameColumns.TABLE);
}
private void createGameTable(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + GameColumns.TABLE + " ("
+ GameColumns._ID + " INTEGER PRIMARY KEY,"
+ GameColumns.IMEI + " TEXT,"
+ GameColumns.LAST_UPDATE + " TEXT,"
+ GameColumns.NICKNAME + " TEXT);");
}
}
}
使用以下代码从每个表中获取数据。此函数返回 Cursor 对象。
public Cursor getRecords(String tableName){
Cursor cursor = mDb.query(tableName, null, null, null, null, null, null);
return cursor;
}
我需要将光标对象转换为列表或字符串。为此,我们需要迭代游标对象。我的问题是,每个表都有不同的字段,所以我需要在单独的方法中迭代每个游标对象。如何使用单一方法来完成?有没有直接将光标转换为字符串的方法?