Переменная не сохраняется в базе данных Android - PullRequest
0 голосов
/ 28 февраля 2020

У меня проблема. Я создал приложение, в котором я могу создавать встречи. Для каждой встречи мне нужно указать имя, приоритет и дату окончания. Тогда я также могу установить будильник, если я хочу. Когда я создаю встречу без установленного будильника, все сохраняется, но если я создаю его с установленным будильником, приоритет не сохраняется, и его значение по умолчанию также зеленое.

Я создал база данных с комнатой после этого урока: https://codinginflow.com/tutorials/android/room-viewmodel-livedata-recyclerview-mvvm/part-1-introduction

Вот как я пытался

AddEditActivity. java

    public static final String EXTRA_ID =
        "com.example.remindme.EXTRA_ID";
    public static final String EXTRA_TERMINNAME =
        "com.example.remindme.EXTRA_TERMINNAME";
    public static final String EXTRA_BISZEIT =
        "com.example.remindme.EXTRA_BISZEIT";
    public static final String EXTRA_PRIORITAET =
        "com.example.remindme.EXTRA_PRIORITAET";
    public static final String EXTRA_ALARM =
        "com.example.remindme.EXTRA_PRIORITAET";

    private void terminSpeichern(){
    String terminName = EditTextTermin.getText().toString();
    String bisZeit = DatumButton.getText().toString();
    int prioritaet = (Integer)PrioritaetButton.getTag();
    Intent data = new Intent();
    data.putExtra(EXTRA_TERMINNAME, terminName);
    data.putExtra(EXTRA_BISZEIT, bisZeit);
    data.putExtra(EXTRA_PRIORITAET, prioritaet);

    if (!AlarmButton.getText().toString().equals(getString(R.string.alarm_festlegen)) && AlarmSwitch.isChecked()){
        String alarm = AlarmButton.getText().toString();
        data.putExtra(EXTRA_ALARM, alarm);
    }

    int id = getIntent().getIntExtra(EXTRA_ID, -1);
    if (id != -1){
        data.putExtra(EXTRA_ID, id);
    }

    setResult(RESULT_OK,data);
    finish();
}

MainActivity . java

     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == ADD_TERMIN_REQUEST && resultCode == RESULT_OK){
        String terminName = data.getStringExtra(AddEditActivity.EXTRA_TERMINNAME);
        String bisZeit = data.getStringExtra(AddEditActivity.EXTRA_BISZEIT);
        int prioritaet = data.getIntExtra(AddEditActivity.EXTRA_PRIORITAET, R.drawable.prioritaet_button_green);
        TerminItem terminItem = new TerminItem(prioritaet,terminName,bisZeit);

        String alarm = data.getStringExtra(AddEditActivity.EXTRA_ALARM);
        if(alarm != null){
            terminItem.setAlarm(alarm);
        }

        terminViewModel.insert(terminItem);
        Toast.makeText(this, R.string.termin_gespeichert, Toast.LENGTH_SHORT).show();
    }
    else if (requestCode == EDIT_TERMIN_REQUEST && resultCode == RESULT_OK){
        int id = data.getIntExtra(AddEditActivity.EXTRA_ID, -1);
        if(id == -1){
            Toast.makeText(this, R.string.fehler_bearbeiten, Toast.LENGTH_SHORT).show();
            return;
        }
        String terminName = data.getStringExtra(AddEditActivity.EXTRA_TERMINNAME);
        String bisZeit = data.getStringExtra(AddEditActivity.EXTRA_BISZEIT);
        int prioritaet = data.getIntExtra(AddEditActivity.EXTRA_PRIORITAET, R.drawable.prioritaet_button_green);
        TerminItem terminItem = new TerminItem(prioritaet,terminName,bisZeit);
        terminItem.setId(id);

        String alarm = data.getStringExtra(AddEditActivity.EXTRA_ALARM);
        if(alarm != null){
            terminItem.setAlarm(alarm);
        }

        terminViewModel.update(terminItem);
        Toast.makeText(this, R.string.termin_aktualisiert, Toast.LENGTH_SHORT).show();
    }

Это мой класс TerminItem

@Entity(tableName = "TTermine")
public class TerminItem {
@PrimaryKey(autoGenerate = true)
private int Id;

private int prioritaet;
private String textTermin;
private String bisZeit;
private String alarm;

public TerminItem(int prioritaet, String textTermin, String bisZeit) {
    this.prioritaet = prioritaet;
    this.textTermin = textTermin;
    this.bisZeit = bisZeit;
}

public void setId(int id) {
    this.Id = id;
}

public void setAlarm(String alarm) {
    this.alarm = alarm;
}

public int getId(){ return Id; }

public int getPrioritaet(){ return prioritaet; }

public String getTextTermin(){
    return textTermin;
}

public String getBisZeit(){
    return bisZeit;
}

public String getAlarm() { return alarm; }

}

Извините, если вопрос сформулирован неправильно, но я м в спешке.

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