У меня проблема. Я создал приложение, в котором я могу создавать встречи. Для каждой встречи мне нужно указать имя, приоритет и дату окончания. Тогда я также могу установить будильник, если я хочу. Когда я создаю встречу без установленного будильника, все сохраняется, но если я создаю его с установленным будильником, приоритет не сохраняется, и его значение по умолчанию также зеленое.
Я создал база данных с комнатой после этого урока: 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; }
}
Извините, если вопрос сформулирован неправильно, но я м в спешке.