AndroidとFirebaseには、firebaseデータベースにデータを送信する2つのアプリケーションが開発され、データベースからデータを取得する2つのアプリケーションが新しくなりました。ファイアベースのデータがテキストビューで取得されない
データが正常にfirebaseコンソールに追加されますが、私は他のアプリケーションでデータを取得していたときにデータの一つのノードのみが表示されますが、私は、すべてのデータが表示されているコードをデバッグを通じてますが、単一のみのTextViewにチェックしていたときにノードが表示されます。以下は
コードを取得するための私のコードです - 今、私はすべての異なるtextviewsのデータ(1人のユーザー1つのTextView)またはcardviewを使用することができますが表示されて何をしたいのか
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());
}
});
}
(まだことを勉強しました)。
以下は、アプリケーション上のfirebaseコンソール上のデータのJSON出力で
{
"users" : {
"Name1" : {
"age" : "18",
"number" : "1234678",
"username" : "Name1"
},
"Name2" : {
"age" : "20",
"number" : "99999999",
"username" : "Name2"
},
"Name3" : {
"age" : "22",
"number" : "8888888",
"username" : "Name3"
}
}
}
ですが、私は唯一取得しています -
Name: Name3
Number: 8888888
Age: 22
作品、あなたはまた、別のカードビューでデータを表示する方法を導くことができる – jshjy
1. CardViewとTextViewの内部で別のXMLレイアウトを作成します。 。 2.アクティビティに空のLinearLayout(垂直方向)を追加します。 3. XMLレイアウトをCardViewとTextViewで膨張させます(XMLからビューをプログラム的に膨張させる方法) 4.テキストをTextViewに設定します(inflated cardViewで) 5.アクティビティからのLinearLayout .addView(cardViewInflated) 6.ステップ3 - 5は、今のようにsetTextを呼び出すのではなく、ループ内で繰り返します。 – kenzo