J'ai une base de données sur Firebase et essaye d'obtenir Android pour l'imprimer dans un ListView. Je peux obtenir le ListView pour imprimer quelque chose, mais il semble que ce soit l'ID des valeurs, plutôt que les valeurs réelles. Le point est de pouvoir faire une barre de recherche, qui peut trouver des données sur la base de données. J'ai un code commenté dans le addValueEventListener. Ce code devrait fonctionner, mais quand je l'utilise, mon application plante sans erreur quand je vais à l'activité "ExistingCustomerActivity". My database structure and the output from the app, with the current code. Sachez que ListView imprime actuellement les valeurs juste sous "Acheteurs". Y a-t-il quelqu'un qui peut vous aider à résoudre ce problème? Merci d'avance. Mise à jour: Je peux voir les données sont chargées correctement dans le journal, mais il affiche toujours une sorte d'ID que je suppose.Firebase renvoie des valeurs incorrectes lorsque addValueEventListener a appelé
public class ExistingCustomerActivity extends AppCompatActivity {
private DatabaseReference mDatabaseReference;
private ListView mUserList;
private ArrayList<Buyers> mUsernames = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_existing_customer);
mDatabaseReference = FirebaseDatabase.getInstance().getReference("Buyers");
mUserList = (ListView) findViewById(R.id.UserListView);
final ArrayAdapter<Buyers> arrayAdapter = new ArrayAdapter<Buyers>(this, android.R.layout.simple_list_item_1, mUsernames);
mUserList.setAdapter(arrayAdapter);
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Buyers buyerList = new Buyers(childSnapshot);
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Map<String, String> map = (Map<String, String>) childSnapshot.getValue();
Log.v("YourValue,","Map value is:" +map.toString());
Buyers buyerList = new Buyers(map);
mUsernames.add(buyerList);
}
arrayAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
classe acheteurs:
public class Buyers {
private String car_Value;
private String interest;
private String driverLicenseNr;
private String name;
private String personNr;
private String phone_Number;
public Buyers(Map<String,String> map){
car_Value = map.get("Bil");
interest = map.get("Interresse");
driverLicenseNr = map.get("Kørekortnr");
name = map.get("Navn");
personNr = map.get("Personnr");
phone_Number = map.get("Telefonnr");
}
il n'y a pas 'PersonNumberTextField' l'intérieur de votre structure firebase DB – akhilesh0707
utilisent nom de la variable réelle comme' Bill, Intereresse et others' dans votre 'Les acheteurs publics()' constructeur – akhilesh0707
Le "PersonNumberTextField" est d'une autre activité où je insérer des données dans la base de données. – Michael