Я смотрю, как обновить существующий код, чтобы использовать новый архитектурный шаблон Android LiveData. Надеюсь, пример кода не требует пояснений, я изо всех сил пытаюсь заставить @IntDef / @Interface работать с Live Data. Я счастлив создать методы в ViewModel для SetAnsardedCorrectly, SetCheated и т. Д. Или создать свойство MutableLiveData и установить его в коде, просто я изо всех сил пытаюсь понять, как использовать что-либо, кроме обычного Integer, которое теряет тип безопасность.
public class QuestionViewModel extends ViewModel {
public static final int UNANSWERED = 0;
public static final int ANSWERED_CORRECTLY = 1;
public static final int ANSWERED_INCORRECTLY = 2;
public static final int CHEATED = 3;
@IntDef({UNANSWERED, ANSWERED_CORRECTLY, ANSWERED_INCORRECTLY, CHEATED})
@Retention(RetentionPolicy.SOURCE)
public @interface AnswerState{}
private @AnswerState int answeredState;
public Question()
{
this.setAnsweredState(UNANSWERED);
}
public @AnswerState int getAnsweredState() {
return answeredState;
}
public void setAnsweredState(@AnswerState int answeredState) {
this.answeredState = answeredState;
}