Android Studio: заполнение представления списка данными из базы данных Firebase в реальном времени - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь заполнить представление списка данными из базы данных Firebase. Мне удалось получить информацию и заполнить представление списка, но я пытаюсь включить прослушиватель щелчков по элементам для каждого элемента в списке, и когда выбрано имя пользователя, в диалоговом окне предупреждения будет отображаться дополнительная информация о них из базы данных. .

Схему базы данных можно увидеть ниже:

enter image description here

Код:

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();
    }

Приложение успешно отображает имена пользователей из БД в виде списка, но при выборе имени пользователя отображается неверная информация о пользователях. На втором изображении выбрано имя из списка.

enter image description here

enter image description here

Любая помощь будет оценена.

...