Как использовать HashMap в ModelView? - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь использовать ViewModel в первый раз, и есть ошибка, которую я не могу устранить.Я получаю сообщение «Не удается разрешить пут», как решить эту проблему?

открытый класс SharedViewModel расширяет ViewModel {

public HashMap<Integer, MutableLiveData<String>> answers = new HashMap<Integer, MutableLiveData<String>>(){
            answers.put(1, new MutableLiveData<String>())
            answers.put(2, new MutableLiveData<String>())
            answers.put(3, new MutableLiveData<String>())
};



public MutableLiveData<String> getAnswer(int questionId) {
    return answers.get(questionId);
}

public void setAnswer(int questionId, String answer) {
    if (answers.get(questionId) != null) {
        answers.get(questionId).setValue(answer);
    }
}
}

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Вместо этого

public HashMap<Integer, MutableLiveData<String>> answers = new HashMap<Integer, MutableLiveData<String>>(){
        answers.put(1, new MutableLiveData<String>())
        answers.put(2, new MutableLiveData<String>())
        answers.put(3, new MutableLiveData<String>())
};

Сделайте это

public HashMap<Integer, MutableLiveData<String>> answers = new HashMap<Integer, MutableLiveData<String>>(){{
        put(1, new MutableLiveData<String>())
        put(2, new MutableLiveData<String>())
        put(3, new MutableLiveData<String>())
}};
0 голосов
/ 22 сентября 2019
public HashMap<Integer, MutableLiveData<String>> answers = new HashMap<Integer, MutableLiveData<String>>();

    public void initValues(){
        answers.put(1, new MutableLiveData<String>())
        answers.put(2, new MutableLiveData<String>())
        answers.put(3, new MutableLiveData<String>())
    }

вызовите этот метод init из фрагмента / действия

или попробуйте это

public HashMap<Integer, MutableLiveData<String>> answers = new HashMap<Integer, MutableLiveData<String>>() {
        {
            put(1, new MutableLiveData<String>());
            put(2, new MutableLiveData<String>());
            put(3, new MutableLiveData<String>());
        }
    };
...