如何在ListView中显示HashMap中的项目和子项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ListView中显示HashMap中的项目和子项目相关的知识,希望对你有一定的参考价值。

我想显示HashMap中的项目和子项目,项目为String(借款人名称),子项目double(借款人贷款)。这是我的第一个android应用程序,请谅解:)

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"

android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="669dp">

    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <Button
            android:id="@+id/editButton"
            android:layout_width="244dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Dodaj" />

        <Button
            android:id="@+id/sumButton"
            android:layout_width="202dp"
            android:layout_height="wrap_content"
            android:text="Suma dlugow" />

    </LinearLayout>

</LinearLayout>

和后端

    listView = findViewById(R.id.listView);

    Map<String, Double> borrowers = new HashMap<>();
    ArrayList<String> arrayList = new ArrayList<>();

    borrowers.put("John", 300.0);
    arrayList.add(String.valueOf(borrowers));

    ArrayAdapter<Borrower> arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList);
    listView.setAdapter(arrayAdapter);

并且应用程序仅显示一项,它看起来像{John = 300.0},我想看起来像:

John
300.0

或者只是约翰 t 300

答案

您当前的代码只是获取整个地图的String值。您需要遍历地图以获取键和值,然后构造新的String并将其添加到List

for (Map.Entry<String, Double> entry : borrowers.entrySet()) {
    String key = entry.getKey();
    Double value = entry.getValue();
    arrayList.add(key + "	" + value);
}

以上是关于如何在ListView中显示HashMap中的项目和子项目的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 listview 项目 android 对 listview 进行排序?

使用listview绑定sqlite中的数据

如何使用 onItemClickListener 存储 ListView 中的可点击项目?

单击 Listview 中的项目时,如何在新活动中从 Firebase 检索数据?

如何强制 ListView 忽略单击/不突出显示单击的项目?

如何在ListView项目的对话框中显示自定义消息