1

新しい Android LiveData アーキテクチャ パターンを使用するように既存のコードを更新する方法を検討しています。コード サンプルが自明であることを願っています。@IntDef / @Interface をライブ データで動作させるのに苦労しています。ViewModel で SetAnsweredCorrectly、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;
    }
4

2 に答える 2

0

これを試して:

ObservableField<AnswerState> observableAnswer = new ObservableField<>;
于 2018-10-16T12:40:09.523 に答える