Как получить значение Timestamp из базы данных sqlite? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть приложение для Android, которое использует базу данных Sqlite.Я создал столбец Timestamp, как показано.

 String table   =  "CREATE TABLE IF NOT EXISTS "  + tableNameCreated + " (" +
            GymContract.GymEntry._ID                 + " INTEGER PRIMARY KEY, " +
            GymContract.GymEntry.COLUMN_SETS         + " INTEGER NOT NULL, " +
            GymContract.GymEntry.COLUMN_REPS         + " INTEGER NOT NULL, " +
            GymContract.GymEntry.COLUMN_WEIGHT       + " REAL  NOT NULL, " +
            GymContract.GymEntry.COLUMN_TIMESTAMP    + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP , " +
            GymContract.GymEntry.COLUMN_MUSCLE_TYPE  + " TEXT   );";

    db.execSQL(table);
}

В моем классе адаптера в методе BindView, как получить значение столбца timestamp и прикрепить его к представлению адаптера, которое будет отображаться пользователю?

   public void onBindViewHolder(@NonNull MyViewHolder holder, int      position) {

    if (!mCursor.moveToPosition(position)) {
        return;
    }

    int id = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry._ID));
    holder.id_varAdapter.setText(String.valueOf(id));

    int sets = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_SETS));
    holder.set_varAdapter.setText(String.valueOf(sets));

    int reps = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_REPS));
    holder.rep_varAdapter.setText(String.valueOf(reps));

    double weights = mCursor.getDouble(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_WEIGHT));
    holder.weight_varAdapter.setText(String.valueOf(weights));
}

1 Ответ

0 голосов
/ 20 декабря 2018

Просто сделайте то же самое, что и для любого другого значения.например,

String timestamp = mCursor.getString(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_TIMESTAMP));
holder.timestamp_varAdapter.setText(timestamp);

Это предполагает, что вы настроили holder.timestamp_varAdapter соответственно и хотите, чтобы отметка времени была в формате 2018-12-20 18:59:33, и что вы извлекли столбец TIMESTAMP из таблицы.

Если вы хотите, чтобы данные отображались в другом формате, вы можете изменить запрос на использование одной из функций даты / времени.

например, если вы хотите просто 2018-12-20, вы можете использовать SELECT *, date(timestamp) AS mydate для запроса и затем

String timestamp = mCursor.getString(mCursor.getColumnIndex("mydate"));
holder.timestamp_varAdapter.setText(timestamp);

Функции даты и времени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...