【问题标题】:How do i display elements from Firebase such as "FIELD1" in android?如何在 Android 中显示 Firebase 中的元素,例如“FIELD1”?
【发布时间】:2018-08-30 12:56:07
【问题描述】:

正如标题所说,我只是找不到解决方案。到目前为止,我已经尝试过,但没有成功。

下面是一张图片的链接。

【问题讨论】:

  • 我不明白你想做什么
  • @NileshRathod:您能解释一下为什么这是您链接的问题的重复项吗?我看不出两者之间的联系。
  • @GojkoK:请编辑您的问题以包含您已经尝试过的内容。没有它,就很难比 Firebase 文档更好地解释事情了。寻求帮助的最佳方式是显示minimal, complete, standalone piece of code that reproduces what you tried and where you got stuck(请阅读链接,它非常有用)。
  • 我有像 Ada 这样的部分,然后是孩子。现在,我想在 ListView 上显示每个部分的所有子项。然后在我单击 ListView 中的一个项目后,它会向它添加一些字符串。因此,例如,我想将字符串“- Selected”附加到编号 7 下的 FIELD1。

标签: android json firebase firebase-realtime-database


【解决方案1】:

如果只想获取节点7FIELD1属性的值,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference fieldOneRef = rootRef.child("Ada").child("7").child("FIELD1");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String field1 = dataSnapshot.getValue(String.class);
        Log.d(TAG, field1);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
fieldOneRef.addListenerForSingleValueEvent(valueEventListener);

如果要获取所有节点下FIELD1属性的值,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference adaRef = rootRef.child("Ada");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String field1 = ds.child("FIELD1").getValue(String.class);
            Log.d(TAG, field1);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
adaRef.addListenerForSingleValueEvent(valueEventListener);

【讨论】:

  • 代码很棒,但是如何在 ListView 中显示呢?
  • 这听起来是另一个问题,但要解决它,我建议您从这个 post 中查看我的答案,我已经解释了如何从Firebase 实时数据库并使用ArrayAdaper 将其显示在ListView 中。因此,您应该根据该答案中的信息自行尝试,如果出现其他问题,请提出另一个问题。
  • 如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记来接受它。应将颜色更改为绿色。我会很感激的。谢谢!
  • 我看过你关于 ListView 的链接,它非常有用,但不是我需要的。我想在 ListView 中设置项目,以便在单击它时,它会从“Alex Mamo”变为“Alex Mamo - Selected”。
  • 您可以简单地使用setOnItemClickListener 并根据选择的内容触发特定操作。
猜你喜欢
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多