gpt4 book ai didi

java - 如何在RecyclerView中使用HashMap数据?

转载 作者:行者123 更新时间:2023-12-01 19:43:20 25 4
gpt4 key购买 nike

我用HashMap计算相同的值(说hasmap),但是如何在中显示HashMap的键和值RecyclerView

HashMap<String, Integer> hasmap = new HashMap<>();
for (int i = 0; i < data.length(); i++){
JSONObject List_data_kecamatan = data.getJSONObject(i);

String nama_kecamatan = List_data_kecamatan.getString("dapil_kecamatan");

int count = 0;
if (hasmap.containsKey(nama_kecamatan)){
count = hasmap.get(nama_kecamatan)+1;
hasmap.put(nama_kecamatan, count);
}else {
hasmap.put(nama_kecamatan, 1);
}

}

我使用 JSON 对象作为 hasmap 中的键。

最佳答案

思考类似:

public class MyRVAdapter extends RecyclerView.Adapter<MyViewHolder> {

private HashMap<String, String> mData;
private ArrayList<Pair<String, String>> mActualData;

public MyRVAdapter(HashMap<String, String> mData) {
this.mData = mData;
mActualData = new ArrayList<>(mData.size());
mData.forEach((s, s2) -> mActualData.add(new Pair<>(s, s2)));
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, holder, false);

return new MyViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.mTextView.setText(
String.format("%s - %s", mActualData.get(position).first, mActualData.get(position).second)
);
}

@Override
public int getItemCount() {
return mActualData.size();
}
}

public class MyViewHolder extends RecyclerView.ViewHolder {

TextView mTextView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
mTextView = (TextView)itemView;
}
}

因此,这会将 HashMap 转换为键值对的 ArrayList(.forEach 仅适用于 API 24+;如果需要较低版本支持,请用迭代器替换)。

然后,您可以在布局中使用 RecyclerViewsetAdapter 方法。

关于java - 如何在RecyclerView中使用HashMap数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59150522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com