Help guys. Problem. I work with Firebase. Created custom ListView everything works. But when I take data from Firebase elementary items are not added even though everything is correct.

The problem is that inside these lines do not work

MessagesClass chatListClass = new MessagesClass(); chatListClass.setName(cName); messagesClassArrayList.add(chatListClass); 

Detected while everything works correctly. Code:

 messagesListView = (ListView)findViewById(R.id.mainChatLW); messagesClassArrayList = new ArrayList<MessagesClass>(); adapter = new MessagesAdapter(getApplicationContext(), R.layout.messages_lw_items, messagesClassArrayList); messagesListView.setAdapter(adapter); root = FirebaseDatabase.getInstance().getReference().child("/rooms/888P0RVL/chat/"); root.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Iterator i = dataSnapshot.getChildren().iterator(); messagesClassArrayList.clear(); while (i.hasNext()) { DataSnapshot dS = ((DataSnapshot) i.next()); String cName = dS.child("name").getValue().toString(); MessagesClass chatListClass = new MessagesClass(); chatListClass.setName(cName); messagesClassArrayList.add(chatListClass); } } @Override public void onCancelled(DatabaseError databaseError) { } }); 
  • look at debugger what at you in messagesClassArrayList. Is there any data? - alexey polusov

1 answer 1

The solution turned out to be simple, which worked strangely without it.

It turns out after the while method it was necessary to call

 adapter.notifyDataSetChanged();