Android和Firebase的新手,開發了兩個應用程序,其中一個將數據發送到Firebase數據庫,另一個將從數據庫檢索數據。未在textview中檢索到的Firebase數據
數據已成功添加到Firebase控制檯中,但是當我在其他應用程序中檢索數據時,只顯示數據的一個節點,但是當我通過調試代碼來檢查代碼時,所有數據都會顯示,但在textview中只顯示一個節點被顯示。
下面是我爲檢索代碼的代碼 -
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
TextView tv,tv1;
Button btn;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("users");
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!FirebaseApp.getApps(this).isEmpty()) {
// Not in crash process. Do your Remote Config init here.
System.out.println("ss");
}
tv = (TextView) findViewById(R.id.textView3);
tv1 = (TextView) findViewById(R.id.textView2);
mDatabase = FirebaseDatabase.getInstance().getReference();
btn = (Button) findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ValueEventListener valueEventListener = myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
User user = postSnapshot.getValue(User.class);
String string = "Name: " + user.getUsername() + "\n Number : " + user.getNumber() + "\n Age: " + user.getAge();
tv.setText(string);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getMessage());
}
});
}
現在我想做的是顯示不同textviews所有數據(一個用戶一個TextView的),或者可以使用cardview(仍然有來研究)。
下面是數據的火力控制檯
{
"users" : {
"Name1" : {
"age" : "18",
"number" : "1234678",
"username" : "Name1"
},
"Name2" : {
"age" : "20",
"number" : "99999999",
"username" : "Name2"
},
"Name3" : {
"age" : "22",
"number" : "8888888",
"username" : "Name3"
}
}
}
在應用輸出上的JSON,我只得到 -
Name: Name3
Number: 8888888
Age: 22
這樣的作品,你能還指導如何在不同的卡視圖中顯示的數據 – jshjy
1. CardView和TextView的內部創建獨立的XML佈局。 2.在您的活動中添加空LinearLayout(垂直方向) 3.使用CardView和TextView擴展XML佈局(Google如何以編程方式從XML充填視圖) 4.將文本設置爲充氣卡中的TextView 5.調用您的LinearLayout來自Activity .addView(cardViewInflated) 6.步驟3 - 5重複循環,而不是像現在這樣調用setText。 – kenzo