Как я могу повторять элемент ListView определенное количество раз, используя данные Android и SQLite и меняя один столбец на каждой итерации? - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь повторить определенные данные из таблицы в ListView с одной строкой, изменяющей каждую итерацию элемента.Я хочу, чтобы пользователь ввел целое число раз, чтобы повторить, и нажмите кнопку, чтобы обновить список.

Я работаю с датами в качестве элемента обновления.Поэтому, если пользователь вводит «3», я хочу, чтобы 3 строки были добавлены в список и вставлены в таблицу, добавив 1 месяц к дате за 3 месяца.

Основная деятельность

planAheadButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (planAheadMonths.getText().toString().trim().isEmpty()) {
                Toast.makeText(getBaseContext(), "Add months to plan by", Toast.LENGTH_SHORT).show();
            } else {
                int plan = Integer.parseInt(planAheadMonths.getText().toString());
                mDBHelper.updateCheckingPlanner(plan, mChecking.getCheckingId());
                planAheadMonths.setText("");
                mDBHelper.getTransRepeater(plan, mChecking.getCheckingId());

            }

        }
    });

DBHelper

    public void getTransactionRepeater(int repeat, int id) {

    SQLiteDatabase db = this.getWritableDatabase();
    String whereclause = TRANSACTION_DATE + " BETWEEN " + getCurrentMonth() + " AND " + getFutureMonth() + " AND " +
            TRANSACTION_CHECKING_ID + " = " + id + " AND " + TRANSACTION_REPEAT + " != 'NONE' ";
    String[] whereargs = new String[1];
    Cursor res = db.query(TABLE_TRANSACTIONS, null, whereclause, null, null, null, TRANSACTION_DATE + " ASC, " + TRANSACTION_ID);
    db.beginTransaction();

    while (res.moveToNext()) {



        if (res.getString(res.getColumnIndex(TRANSACTION_REPEAT)).equals("MONTH")) {

            for (int i = 0; i < repeat; i++) {
                + i);
                ContentValues cv = new ContentValues();
                cv.put(TRANSACTION_NAME, res.getString(res.getColumnIndex(TRANSACTION_NAME)));
                cv.put(TRANSACTION_TYPE, res.getString(res.getColumnIndex(TRANSACTION_TYPE)));
                cv.put(TRANSACTION_DATE, sdf.format(cFuture.getTime()) + res.getString(res.getColumnIndex(TRANSACTION_NAME)) + i);
                cv.put(TRANSACTION_AMOUNT, res.getInt(res.getColumnIndex(TRANSACTION_AMOUNT)));
                cv.put(TRANSACTION_NOTES, res.getString(res.getColumnIndex(TRANSACTION_NOTES)));
                cv.put(TRANSACTION_REPEAT, res.getString(res.getColumnIndex(TRANSACTION_REPEAT)));
                cv.put(TRANSACTION_CHECKING_ID, res.getInt(res.getColumnIndex(TRANSACTION_CHECKING_ID)));
                cv.put(TRANSACTION_NEW_BALANCE, res.getInt(res.getColumnIndex(TRANSACTION_NEW_BALANCE)));
                cv.put(TRANSACTION_CREDIT_ID, res.getString(res.getColumnIndex(TRANSACTION_CREDIT_ID)));
                whereargs[0] = res.getString(res.getColumnIndex(TRANSACTION_DATE));
                db.insert(TABLE_TRANSACTIONS, null, cv);
            }
        }
    }
    res.close();
    db.setTransactionSuccessful();
    db.endTransaction();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...