android - 如何将返回的 JSON 的 HashMap 值归因于 RecyclerView 行中的 TextView

标签 android hashmap

作为 API 调用的结果,我收到了一个 Hashmap <String,Integer> . onResponse内方法,我可以在控制台输出如下:

 public void onResponse(Call<UsersStackOverflow> call, Response<UsersStackOverflow> response) {

            int code = response.code();
            List<User> users = response.body().getUsers();

            myDataSource.clear();
            myDataSource.addAll(response.body().getUsers());
            myAdapter.notifyDataSetChanged();

            for (User user: users) {
                System.out.println(
                        "Name: " + user.getUserName() +
                                "; Location: " + user.getLocation() +
                                "; Reputation:  " + user.getReputation()
                );

                System.out.println("Badges: ");

                for (Map.Entry<String, Integer> entry : user.getBadges().entrySet()) {
                    String key = entry.getKey().toString();
                    Integer value = entry.getValue();
                    System.out.println(key + " : " + value);
                }
            }

我想通过 RecyclerView 在不同的行中显示每条数据. onBindViewHolder()内适配器,我这样显示数据:

@Override
public void onBindViewHolder(UsersViewHolder holder, int position) {
    holder.userLocation.setText("Location: "+users.get(position).getLocation());
    holder.userReputation.setText("Reputation: " + users.get(position).getReputation());
    holder.userName.setText("Username: " + users.get(position).getUserName());
    holder.goldenBdge.setText(
            (users.get(position).getBadges().keySet().toString()));

}

但是我应该如何从 HashMap 中提取键值对呢?谢谢!

最佳答案

users.get(position).getBadges().entrySet()

返回包含此 Map 中所有映射的 Set。每个映射都是 Map.Entry 的一个实例。由于 Set 受此 Map 支持,因此其中一个的更改将反射(reflect)在另一个中。

我想这就是你如何遍历对:

Iterator<Map.Entry<Integer,String>> it  = hash.entrySet().iterator();
        do{
            Map.Entry<Integer,String> pair = it.next();
            pair.getKey();
            pair.getValue();
        }while(it.hasNext());

关于android - 如何将返回的 JSON 的 HashMap 值归因于 RecyclerView 行中的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39684380/

相关文章:

java - 为什么在 LinkedHashMap 中通过桶迭代比 HashMap 更快?

java - HashMap复合键-停止每次调用时创建键对象的解决方案

java - 如何写入/放入具有两个键(键对、值)的 HashMap?

java - java中如何响应android的多点触控

java - 如何在 Java 中将 ArrayList 添加到 Hashmap

java - 如何将主题设置为 ProgressDialog?

android - 在不重新加载的情况下将项目添加到 ListView

java - 从多个线程(不修改)从 java.util.HashMap 获取值是否安全?

android - intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bmp) 图像偏离中心

android - 数据库或文件处理