如何在ModelView中使用HashMap?
How to use HashMap in ModelView?
我第一次尝试使用 ViewModel,出现了一个我无法解决的错误。我收到消息 "Cannot resolve put",我该如何解决这个问题?
public class 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);
}
}
}
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>())
}
从 fragment/activity
调用此方法初始化
或者试试这个
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>());
}
};
而不是这个
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>())
}};
我第一次尝试使用 ViewModel,出现了一个我无法解决的错误。我收到消息 "Cannot resolve put",我该如何解决这个问题?
public class 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);
}
}
}
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>())
}
从 fragment/activity
调用此方法初始化或者试试这个
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>());
}
};
而不是这个
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>())
}};