Я пытаюсь заполнить представление списка данными из базы данных Firebase. Мне удалось получить информацию и заполнить представление списка, но я пытаюсь включить прослушиватель щелчков по элементам для каждого элемента в списке, и когда выбрано имя пользователя, в диалоговом окне предупреждения будет отображаться дополнительная информация о них из базы данных. .
Схему базы данных можно увидеть ниже:
Код:
databaseReference = FirebaseDatabase.getInstance().getReference().child("Customers");
listView = root.findViewById(R.id.listView);
arrayAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(arrayAdapter);
databaseReference.addChildEventListener(new ChildEventListener()
{
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
//String string = dataSnapshot.getValue(String.class);
final String firstName = dataSnapshot.child("firstName").getValue().toString();
final String surname = dataSnapshot.child("surname").getValue().toString();
final String dob = dataSnapshot.child("dob").getValue().toString();
final String contactNumber = dataSnapshot.child("contactNumber").getValue().toString();
final String email = dataSnapshot.child("email").getValue().toString();
arrayList.add(firstName + " " + surname);
arrayAdapter.notifyDataSetChanged();
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
StringBuffer buffer = new StringBuffer();
buffer.append("First Name: " + firstName + "\n");
buffer.append("Surname: " + surname + "\n");
buffer.append("Date of Birth: " + dob + "\n");
buffer.append("Contact Number: " + contactNumber + "\n");
buffer.append("Email: " + email + "\n");
showMessage(firstName + " " + surname, buffer.toString());
}
});
}
public void showMessage(String Title,String Message)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setCancelable(true);
builder.setTitle(Title);
builder.setMessage(Message);
builder.show();
}
Приложение успешно отображает имена пользователей из БД в виде списка, но при выборе имени пользователя отображается неверная информация о пользователях. На втором изображении выбрано имя из списка.
Любая помощь будет оценена.