从 Firebase 检索数据并在文本视图中输出
Retrive data from Firebase and output in a textview
我的 android 项目需要一些帮助。我尝试创建一个 Android 论坛 ("student edition"),但我缺乏知识,这让我无法自拔。
我有休闲的 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 正在工作,当学生发帖时,我将来自 "message" 的数据与 "post_title"( 是根据用户构建的)一起推送到火力基地。
我需要一些有关 "fetch" 方法的帮助。我尝试制作一个按钮,将数据从 firebase 提取到 "textview"
我的问题是:如何在我的文本视图中放置以下内容:"post_title"+"message"??
所需输出示例:
学生 Willy Weiss 说:ssss
学生 Willy Weiss 说:qqq
学生 Willy Weiss 说:dfsfsfsf
有人可以帮我解决这个问题吗?我对 Arrays 或 HashMaps 的知识为零,所以如果你推荐这样的东西,请留下一些示例代码,这样我就可以 learn/figure 找出你推荐的东西。
非常感谢。
尝试以下操作:
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()
我的 android 项目需要一些帮助。我尝试创建一个 Android 论坛 ("student edition"),但我缺乏知识,这让我无法自拔。
我有休闲的 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 正在工作,当学生发帖时,我将来自 "message" 的数据与 "post_title"( 是根据用户构建的)一起推送到火力基地。
我需要一些有关 "fetch" 方法的帮助。我尝试制作一个按钮,将数据从 firebase 提取到 "textview"
我的问题是:如何在我的文本视图中放置以下内容:"post_title"+"message"??
所需输出示例:
学生 Willy Weiss 说:ssss
学生 Willy Weiss 说:qqq
学生 Willy Weiss 说:dfsfsfsf
有人可以帮我解决这个问题吗?我对 Arrays 或 HashMaps 的知识为零,所以如果你推荐这样的东西,请留下一些示例代码,这样我就可以 learn/figure 找出你推荐的东西。
非常感谢。
尝试以下操作:
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()