首页 > 解决方案 > 从 Firebase 检索数据并在文本视图中输出

问题描述

我需要一些有关我的 android 项目的帮助。我尝试制作一个 Android 论坛(“学生版”),但我缺乏知识赶上了我。我有闲置的 Firebase 数据库结构: 在此处输入图像描述

我的 Forum.class 如下所示:

Button post_btn,fetch;
EditText message;
DatabaseReference forum1, comments;
TextView  post_update;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_forum);

    post_btn = findViewById(R.id.post_btn);
    message = findViewById(R.id.comment_area);
    fetch=findViewById(R.id.btnFetch);
    post_update=findViewById(R.id.tvValue);
    final String post_title = "Student " + Session.LiveSession.user.getFn() + " " + Session.LiveSession.user.getSn() + " says: ";


    forum1 = FirebaseDatabase.getInstance().getReference("_forum1_");

    post_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          ;
            Message comment = new Message( post_title,message.getText().toString());
            forum1.child(forum1.push().getKey()).setValue(comment);



        }
    });


    fetch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            forum1.child("_forum1_").addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    String value = dataSnapshot.getValue(String.class);
                    post_update.setText(value);
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
        }
    });

  }//end of onCreate
} //end of Class

pst_btn 正在工作,当学生发布时,我将“消息”中的数据与“post_title”(根据用户构造的女巫)一起推送到 Firebase。

我希望对我的“获取”方法有所帮助。我尝试制作一个按钮,将数据从 firebase 提取到“textview”中

我的问题是:如何在我的文本视图中放置以下内容:“post_title”+“message”?

所需输出的示例:

学生 Willy Weiss 说: ssss

学生 Willy Weiss 说:qqq

学生 Willy Weiss 说:dfsfsfsf

有人可以帮我弄这个吗?我对 Arrays 或 HashMaps 的知识为零,所以如果你推荐这样的东西,请留下一些示例代码,这样我就可以学习/找出你推荐的东西。

太感谢了。

标签: javaandroidfirebasefirebase-realtime-databasetextview

解决方案


尝试以下操作:

 fetch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                forum1.child("_forum1_").addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                      for(DataSnapshot ds : dataSnapshot.getChildren()){
                        String msg = ds.child("message").getValue(String.class);
                        String value = ds.child("post_title").getValue(String.class);
                        post_update.setText(value +" "+ msg);
                     }
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });
            }
        });

迭代使用dataSnapshot.getChildren(),然后检索消息和 post_title 并将它们传递给setText()


推荐阅读