Как получить текст для детей и установить его в виде списка - PullRequest
0 голосов
/ 13 февраля 2020

Я пытался получить список детей в виде списка на панели инструментов. Всякий раз, когда я нажимаю на пользователей, мне нужно, чтобы эти дети отображались в списке.

Моя база данных

    ClientsRef= FirebaseDatabase.getInstance().getReference().child("Users");


    ClientsRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists())
            {
                clientcount=(int) dataSnapshot.getChildrenCount();
                Clients.setText(Integer.toString(clientcount));

            }
            else
                {
                    Clients.setText("0 Clients");

            }

        }

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

[1]. Просто возьмите recyclerview вместо TextView в своей деятельности.

[2]. Возьмите ArrayList of String в свою деятельность, как

ArrayList<String> childList=new ArrayList<>();

[3]. Создайте Адаптер для вашего рециркуляционного представления, в котором в файл макета элемента добавьте только один текстовый вид, в котором вы увидите список своих детей.

[4]. Установите этот адаптер с recyclerView в onCreate (), как показано ниже:

recyclerview.setLayoutManager(new LinearLayoutManager(this,RecyclerView.VERTICAL,false);
YourAdapter adapter=new YourAdapter(this,childList) //pass your arraylist
recyclerview.setAdapter(adapter);

[5]. в onDataChange () внести изменения, как показано ниже

ClientsRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists())
            {
               for(DataSnapshot snapshot:dataSnapshot){
                 childList.add(snapshot.getKey());
               }
               adapter.notifyDataSetChanged();
            }
            else
                {
                Clients.setText("0 Clients");

            }

        }

ЭТО ЭТО

0 голосов
/ 13 февраля 2020

Создайте один класс модели, у которого все поля будут полями дочернего элемента вашей базы данных, и используйте его, как показано ниже

=> Предположим, что имя класса вашей модели Users then ...

 ClientsRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists())
            {
                 Users users=new Users(dataSnapshot.getValue());
                 ArrayList<Users> userList=new ArrayList();
                 userList.add(users);

            }
            else
                {
                Clients.setText("0 Clients");

            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...