从我的firebase数据库读取数据到活动

时间:2018-03-16 15:08:59

标签: android firebase-realtime-database tableview

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

在之前的一项活动中,我已经设法将数据保存在数据库中。

Idealy我希望有一个显示3列的表视图。第一个是#34; Deprture"下一个"到达"第三个"时间"。然后在每一行都有每个孩子。

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

提前谢谢!

可用的游乐设施活动:

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数据库

enter image description here

3 个答案:

答案 0 :(得分:3)

假设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);

您的输出将是:

aaaaaa / abababa / 10:00
bbbb / bcbc / 10:00

答案 1 :(得分:0)

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

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();

    }
});

答案 2 :(得分:0)

enter code here content1 = (TextView)findViewById(R.id.con);
    course = (TextView)findViewById(R.id.co);
    reset_button = (Button)findViewById(R.id.reset);
    reference = FirebaseDatabase.getInstance().getReference().child("course data").child("1");
    reset_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
           reference.addListenerForSingleValueEvent(new ValueEventListener() {
               @Override
               public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                   try {
                       String couure_details = dataSnapshot.child("title").getValue(String.class);
                       String course_content =dataSnapshot.child("contant").getValue(String.class);
                       content1.setText(course_content);
                       course.setText(couure_details);
                   }catch (Exception e)
                   {
                       Toast.makeText(userActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                   }

               }

               @Override
               public void onCancelled(@NonNull DatabaseError databaseError) {

               }
           });