Использование @IntDef в наблюдаемом LiveData

Я смотрю, как обновить существующий код, чтобы использовать новый архитектурный шаблон 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;
    }

person Paul Hadfield    schedule 13.12.2017    source источник


Ответы (1)


Попробуй это:

ObservableField<AnswerState> observableAnswer = new ObservableField<>;
person therealak12    schedule 16.10.2018