база данных записей не обновляется Android Studio, SQL-Lite - PullRequest
0 голосов
/ 26 сентября 2018

Может ли кто-нибудь мне помочь?мои записи не обновляются.Я думаю, что текст редактирования остался прежним, но не слишком уверен.

Как изменить значения представления, которые помещаются в текст редактирования, чтобы изменить значения при обновлении текстов редактирования.Буду признателен за помощь. Спасибо.

DatabaseManager

   public Cursor selectRow(String ID) {
        String query = "Select * from " + TABLE_NAME + " where studentID = " + ID;
        Cursor cursor = db.rawQuery(query, null);
        return cursor;

    }

    public boolean updateData(String id, String fn, String ln, String ge, String cs, String a, String loc) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("studentID", id);
        contentValues.put("first_name", fn);
        contentValues.put("last_name", ln);
        contentValues.put("gender", ge);
        contentValues.put("course_study", cs);
        contentValues.put("age", a);
        contentValues.put("location", loc);
        db.update(TABLE_NAME, contentValues, "studentID = ?", new String[]{id});

        return true;
    }

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

активность main.java

 private void UpdateData() {
                              u.setOnClickListener(
                                      new View.OnClickListener() {
                                          @Override
                                          public void onClick(View v) {
                                              uptable.setVisibility(View.VISIBLE);
                                              again.setVisibility(View.VISIBLE);

                            Cursor res = mydManager.selectRow(text);


                            if (res != null && res.moveToFirst()) {
                                String id = Integer.toString(res.getInt(0));
                                String nme = res.getString(1);
                                String lnme = res.getString(2);
                                String gen = res.getString(3);
                                String corse = res.getString(4);
                                String ag = Integer.toString(res.getInt(5));
                                String lo = res.getString(6);
                                studid.setText(id);
                                fname.setText(nme);
                                lname.setText(lnme);
                                gender.setText(gen);
                                course.setText(corse);
                                age.setText(ag);
                                loc.setText(lo);

                            }


                        }
                    }
            );
        }


        public void UpdateData1() {
            again.setOnClickListener(
                    new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            uptable.setVisibility(View.GONE);
                            String id = studid.getText().toString();
                            String nme = fname.getText().toString();
                            String lnme = lname.getText().toString();
                            String gen = gender.getText().toString();
                            String corse = course.getText().toString();
                            String ag = age.getText().toString();
                            String lo = loc.getText().toString();
                            boolean isUpdated = mydManager.updateData(id, nme , lnme, gen, corse ,ag , lo);
                            if (isUpdated == true)
                                Toast.makeText(Main4Activity.this, "Data Updated", Toast.LENGTH_LONG).show();


                            else
                                Toast.makeText(Main4Activity.this, "Data Not Updated", Toast.LENGTH_LONG).show();
                        }
                    }
            );
        }

Я пытался использовать кнопку для установки данных, но она все еще остается прежней.

1 Ответ

0 голосов
/ 26 сентября 2018

Извините, не читайте код, возьмите пример, если это поможет. Просто логика.

public long updateNote(NoteModel noteModel) {
    if (LOG_DEBUG) UtilLogger.showLogUpdate(TAG, noteModel, noteModel.getRow_pos());
    long updatedRow = 0;

    try {

        ContentValues contentValues = new ContentValues();
        contentValues.put(DBSchema.DB_TITLE, noteModel.getTitle());
        contentValues.put(DBSchema.DB_IMAGE_PATH, noteModel.getImgUriPath());
        contentValues.put(DBSchema.DB_SUB_TEXT, noteModel.getSub_text());
        contentValues.put(DBSchema.DB_CREATE_DATE, noteModel.getCreateDate());
        contentValues.put(DBSchema.DB_UPDATE_DATE, noteModel.getUpdateDate());
        contentValues.put(DBSchema.DB_SCHEDULED_TIME_LONG, noteModel.getScheduleTimeLong());
        contentValues.put(DBSchema.DB_SCHEDULED_TIME_WHEN, noteModel.getScheduledWhenLong());
        contentValues.put(DBSchema.DB_SCHEDULED_TITLE, noteModel.getScheduledTitle());
        contentValues.put(DBSchema.DB_IS_ALARM_SCHEDULED, noteModel.getIsAlarmScheduled());
        contentValues.put(DBSchema.DB_IS_TASK_DONE, noteModel.getIsTaskDone());
        contentValues.put(DBSchema.DB_IS_ARCHIVED, noteModel.getIsArchived());


        updatedRow = mSqLiteDatabase.updateWithOnConflict(
                DBSchema.DB_TABLE_NAME,
                contentValues,
                DBSchema.DB_ROW_ID + " =?", new String[]{String.valueOf(noteModel.get_id())}, mSqLiteDatabase.CONFLICT_REPLACE);

        return updatedRow;

    } catch (SQLException e) {
        e.printStackTrace();
    }
    return updatedRow;
}

, затем возьмите курсор

public Cursor getCursorForAlarmScheduled(String passAlarmScheduledStatus) {
    if (LOG_DEBUG)
        Log.w(TAG, " pick all record with alarmScheduled 1  : " + passAlarmScheduledStatus);
    return mSqLiteDatabase.rawQuery(DBSchema.DB_SELECT_ALL +
            " WHERE " + DBSchema.DB_IS_ALARM_SCHEDULED + " = " + passAlarmScheduledStatus, null);
}

и затем извлеките

 //common operation for all,
public static List<NoteModel> extractCommonData(Cursor cursor, List<NoteModel> noteModelList) {
    noteModelList = new ArrayList<>();

    if (LOG_DEBUG) Log.i(TAG, "inside extractCommonData()");
    if (cursor != null) {
        if (cursor.moveToFirst()) {
            do {
                NoteModel noteModel = new NoteModel();

                noteModel.set_id(cursor.getInt(cursor.getColumnIndex(DBSchema.DB_ROW_ID)));
                noteModel.setTitle(cursor.getString(cursor.getColumnIndex(DBSchema.DB_TITLE)));
                noteModel.setImgUriPath(cursor.getInt(cursor.getColumnIndex(DBSchema.DB_IMAGE_PATH)));
                noteModel.setSub_text(cursor.getString(cursor.getColumnIndex(DBSchema.DB_SUB_TEXT)));
                noteModel.setCreateDate(cursor.getLong(cursor.getColumnIndex(DBSchema.DB_CREATE_DATE)));
                noteModel.setUpdateDate(cursor.getLong(cursor.getColumnIndex(DBSchema.DB_UPDATE_DATE)));
                noteModel.setScheduleTimeLong(cursor.getLong(cursor.getColumnIndex(DBSchema.DB_SCHEDULED_TIME_LONG)));
                noteModel.setScheduledWhenLong(cursor.getLong(cursor.getColumnIndex(DBSchema.DB_SCHEDULED_TIME_WHEN)));
                noteModel.setScheduledTitle(cursor.getString(cursor.getColumnIndex(DBSchema.DB_SCHEDULED_TITLE)));
                noteModel.setIsAlarmScheduled(cursor.getInt(cursor.getColumnIndex(DBSchema.DB_IS_ALARM_SCHEDULED)));
                noteModel.setIsTaskDone(cursor.getInt(cursor.getColumnIndex(DBSchema.DB_IS_TASK_DONE)));
                noteModel.setIsArchived(cursor.getInt(cursor.getColumnIndex(DBSchema.DB_IS_ARCHIVED)));
                noteModelList.add(noteModel);

            } while (cursor.moveToNext());
        }
        cursor.close();

    }
    return noteModelList;
}

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

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