Android 正在将数据从我的firebase数据库读取到“活动”

Android 正在将数据从我的firebase数据库读取到“活动”,android,firebase-realtime-database,tableview,Android,Firebase Realtime Database,Tableview,我是android studio的初学者。数周来,我一直在尝试将数据库中的数据读取到我的活动(可用的游乐设施)中。现在我只是将数据从一个活动传输到另一个活动,并将其放入文本视图中 在前面的一个活动中,我已将数据保存到数据库中 理想情况下,我想有表视图显示3列。第一个是“离开”,下一个是“到达”,第三个是“时间”。然后在每一行中有每一个孩子 如果有人能帮助我,我将非常感激 提前谢谢你 可用的游乐设施活动: public class AvailableRides extends AppCompatA

我是android studio的初学者。数周来,我一直在尝试将数据库中的数据读取到我的活动(可用的游乐设施)中。现在我只是将数据从一个活动传输到另一个活动,并将其放入文本视图中

在前面的一个活动中,我已将数据保存到数据库中

理想情况下,我想有表视图显示3列。第一个是“离开”,下一个是“到达”,第三个是“时间”。然后在每一行中有每一个孩子

如果有人能帮助我,我将非常感激

提前谢谢你

可用的游乐设施活动:

public class AvailableRides extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_available_rides);

    // Get the Intent that started this activity
    Intent intent = getIntent();
    String messageTime = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE);
    String messageDep = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE1);
    String messageArr = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE2);

    // Capture the layout's TextView and set the string as its text
    TextView textView1 = findViewById(R.id.textView26);
    textView1.setText(messageTime);
    TextView textView2 = findViewById(R.id.textView2);
    textView2.setText(messageDep);
    TextView textView3 = findViewById(R.id.textView4);
    textView3.setText(messageArr);
}
Firebase数据库


您可以创建一个根并选择它。然后在该根目录中检索快照中的所有相应数据。下面是一个示例代码:

Firebase yourDataRef = mRootRef.child("data");
yourDataRef .addValueEventListener(new com.firebase.client.ValueEventListener() {
    @Override
    public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) {


        for (DataSnapshot snapm: dataSnapshot.getChildren()) {

            String messageTime = snapm.child("0").getValue(String.class);
            String messageDep = snapm.child("1").getValue(String.class);
            String messageArr = snapm.child("2").getValue(String.class);
            }
        }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
        throw firebaseError.toException();

    }
});

您可以创建一个根并选择它。然后在该根目录中检索快照中的所有相应数据。下面是一个示例代码:

Firebase yourDataRef = mRootRef.child("data");
yourDataRef .addValueEventListener(new com.firebase.client.ValueEventListener() {
    @Override
    public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) {


        for (DataSnapshot snapm: dataSnapshot.getChildren()) {

            String messageTime = snapm.child("0").getValue(String.class);
            String messageDep = snapm.child("1").getValue(String.class);
            String messageArr = snapm.child("2").getValue(String.class);
            }
        }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
        throw firebaseError.toException();

    }
});

假设
Trips
节点是Firebase根目录的直接子节点,要显示该数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tripsRef = rootRef.child("Trips");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<String> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String arrival = ds.child("Arrival").getValue(String.class);
            String departure = ds.child("Departure").getValue(String.class);
            String time = ds.child("Time").getValue(String.class);
            Log.d("TAG", arrival + " / " + departure  + " / " + time);
            list.add(time);
        }
        Log.d("TAG", time);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
tripsRef.addListenerForSingleValueEvent(valueEventListener);

假设
Trips
节点是Firebase根目录的直接子节点,要显示该数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tripsRef = rootRef.child("Trips");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<String> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String arrival = ds.child("Arrival").getValue(String.class);
            String departure = ds.child("Departure").getValue(String.class);
            String time = ds.child("Time").getValue(String.class);
            Log.d("TAG", arrival + " / " + departure  + " / " + time);
            list.add(time);
        }
        Log.d("TAG", time);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
tripsRef.addListenerForSingleValueEvent(valueEventListener);

我试过这么做,但没能成功)在这种情况下,你应该展示你的工作,我已经试过了,但没能成功((在这种情况下,您应该显示您的工作非常感谢!我现在如何获取表上显示的数据?只需将日志分配给表视图?这是最简单的部分。创建一个列表,将这些值添加到,创建一个适配器,然后将适配器设置为所需的视图。谢谢!!如何从这些值创建列表(例如,字符串时间的列表)就像我更新的答案一样。你认为我的答案对你有帮助吗?在这种情况下,请考虑点击左箭头下的复选标记来接受我的答案。应该改变绿色的颜色。谢谢!非常感谢!我现在怎样才能将数据显示在表上?只需将日志分配给表视图?这是最简单的。创建一个列表,将这些值添加到,创建一个适配器,然后将适配器设置为所需的视图。谢谢!!如何从这些值创建列表(例如字符串时间列表)在我的更新答案中,你认为我的答案对你有帮助吗?在这种情况下,请考虑点击我的答案,点击箭头左边的勾选。应该改变绿色的颜色。谢谢!没有任何解释的代码转储很少有帮助。堆栈溢出是关于学习,而不是提供盲目复制的片段。和粘贴。请提问并解释它如何比OP提供的更好。没有任何解释的代码转储很少有帮助。堆栈溢出是关于学习,而不是提供片段来盲目复制和粘贴。请提问并解释它如何比OP提供的更好。