首页 > 解决方案 > 如何获得与地图条目中列出的日期相关的值的累积

问题描述

我正在 android-studio 中制作一个应用程序(计步器),我想在其中列出从 firebase 中的实时数据库获取的数据,并将其放入我的应用程序中的 Listview 中。由于每天将日期与步骤联系起来,我留下了一个提供“日期:步骤”的设置。我需要做什么才能将每天的所有步骤累积到仅列出不带日期的总步骤的小计中?

这是我正在制作的排行榜页面,我想在其中组织所有用户,从最高步骤(在所有日期走,从注册日期开始计数)到最低步骤。我尝试创建一个 for 循环,在其中调用用户并步行,但这些步骤仍与日期相关联。

我试过查看其他类似的问题,例如:如何有效地迭代 Java Map 中的每个条目?

但我仍然无法理解它。

有问题的代码是:

myRef.addChildEventListener(new ChildEventListener() {
@Override
    public void onChildAdded(@NonNull DataSnapshot dataSnapshot, String s) {
        Map<String, Map> map = (Map<String, Map>) dataSnapshot.getValue();

        int i  = 0;

        for (Map.Entry<String, Map> pair : map.entrySet()) {
            Map steps = map.get("steps");

            arrayList.add(" " + map.get("username") + " " + steps);
            arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , arrayList);
      }

        listView.setAdapter(arrayAdapter);
     }

我想得到输出:

Name 200

数字“200”是走过所有日期的总步数。
我目前得到的输出是:

Name {Date=37,Date=40,Date=12,Date=67,Date=44}
Name {Date=37,Date=40,Date=12,Date=67,Date=44}
Name {Date=37,Date=40,Date=12,Date=67,Date=44}

我需要做什么才能删除日期,并仅列出值(步骤)作为走过所述列出日期(每个用户)的所有步骤的小计?

标签: javaandroidfirebase-realtime-database

解决方案


推荐阅读