如何在列表视图顶部添加项目并将其保存在数据库中

时间:2019-06-09 06:52:02

标签: java android sqlite

我正在尝试使用列表视图保存数据,我想将下一个数据存储在列表视图的顶部,而不是将数据存储在底部。这是我的DatabaseHelper类

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String TABLE_NAME = "people_table";
private static final String COL1 = "ID";
private static final String COL2 = "name";

public DatabaseHelper(Context context) {
    super(context, TABLE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COL2 +" TEXT)";
    db.execSQL(createTable);
}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
    db.execSQL("DROP INDEX IF EXISTS " + TABLE_NAME);
    onCreate(db);
}

public boolean addData(String item) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL2, item);


    Log.d(TAG, "addData: Adding " + item + " to " + TABLE_NAME);

    long result = db.insert(TABLE_NAME, null, contentValues);

    //if data as inserted incorrectly it will return -1
    if (result == -1) {
        return false;
    } else {
        return true;
    }
}

}

1 个答案:

答案 0 :(得分:0)

SQLite没有诸如顶部,底部中间等内容,尽管插入顺序通常/可能与 rowid 列或其别名(您的 ID 列是 rowid 列的别名,并且已指定 AUTOINCREMENT ,则新插入的 rowid 会比现有的更高。

如果您需要特定顺序的数据,则在提取数据时使用 ORDER BY 。根据您的情况, ORDER BY ID DESC 应该首先提取最新的内容。

由于没有用于提取数据的代码,因此无法提供要使用的实际代码。