Firebase Spinner 下拉列表未填充

问题描述 投票:0回答:1

当我尝试从 firebase 获取数据时,我的微调器似乎没有填充。请帮我。 这是初始化微调器的代码:

    private void initLocation() {
        DatabaseReference myRef = database.getReference("Location");
        ArrayList<Location> list = new ArrayList<>();
        myRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                if (snapshot.exists()) {
                    for (DataSnapshot issue : snapshot.getChildren()) {
                        list.add(issue.getValue(Location.class));
                    }
                    Log.d("FirebaseData", "Data loaded successfully: " + list.size() + " items");
                    ArrayAdapter<Location> adapter = new ArrayAdapter<>(requireContext(),  android.R.layout.simple_spinner_dropdown_item, list);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    locationSp.setAdapter(adapter);
                } else {
                    Log.d("FirebaseData", "No data found");
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Log.e("FirebaseData", "Data loading canceled with error: " + error.getMessage());
            }
        });

    }

这是 Location.java 文件:


public class Location {
    private int Id;
    private String loc;

    public Location(String loc) {
        this.loc = loc;
    }

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

}

我希望填充微调器,但当我运行应用程序时,微调器文本为空白,当我按下它时,它不会掉落任何内容。

更新,这是数据库结构:

  "Location": [
    {
      "Id": 0,
      "loc": "LA california"
    },
    {
      "Id": 1,
      "loc": "NY manhattan"
    }
  ],
  "Price": [
    {
      "Id": 0,
      "Value": "1$ - 10$"
    },
    {
      "Id": 1,
      "Value": "10$ - 30$"
    },
    {
      "Id": 2,
      "Value": "more than 30$"
    }
  ]
java android firebase android-fragments firebase-realtime-database
1个回答
0
投票

我没有收到任何其他错误。应用程序运行,但下拉列表未填充。我已经通过更新获取数据库的方式解决了这个问题。

database = FirebaseDatabase.getInstance("database location");
© www.soinside.com 2019 - 2024. All rights reserved.