首页 > 解决方案 > 如何在 ModelView 中使用 HashMap?

问题描述

我第一次尝试使用 ViewModel,但出现了一个我无法解决的错误。我收到消息“无法解决 put”,我该如何解决这个问题?

公共类 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);
    }
}
}

标签: androidandroid-fragmentsandroid-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 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>())
}};

推荐阅读