【发布时间】:2020-09-21 12:57:03
【问题描述】:
我想做一个 RecyclerView 来显示来自 api 调用的响应。一切都由 MVVM 和 Retrofit 设置。我的主要斗争是关于适配器类,它基本上在每个文本视图中显示相同的值。响应肯定是正确的(我已经通过记录器检查过)我看到的另一件事是一遍又一遍地复制所有响应(在控制台中)我如何解决它以正确显示响应?
MainActivity
@Override
public void onChanged(Map<String, Double> stringDoubleMap) {
private HashMap<String, Double> rates = new HashMap<>();
if (rates.size() > 0){
rates.clear();
}
if (!stringDoubleMap.isEmpty()){
rates.putAll(stringDoubleMap);
CurrencyAdapter adapter = new CurrencyAdapter(rates);
recyclerView.setAdapter(adapter);
}
}
适配器
HashMap<String, Double> asd = new HashMap();
public CurrencyAdapter(HashMap<String, Double> rates){
this.asd = rates;
Log.i(TAG, "CurrencyAdapter: constructor "+asd.size());
}
@NonNull
@Override
public CurrencyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.currency_item, parent, false);
return new CurrencyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull CurrencyViewHolder holder, int position) {
for (Map.Entry<String, Double> entry : asd.entrySet()){
System.out.println(entry.getKey());
holder.mNationality.setText(entry.getKey());
holder.mValue.setText(String.valueOf(entry.getValue()));
}
Log.i(TAG, "onBindViewHolder: "+asd.size());
}
【问题讨论】:
标签: java android mvvm retrofit