Почему просмотрщик невидим, исчезает или исчезает при вызове адаптера notifyDataSetChanged? - PullRequest
0 голосов
/ 26 октября 2019

Recyclerview показывает данные базы данных sqlite. Recyclerview пропал, невидим, или я не знаю, что происходит, когда данные вставляются в базу данных sqlite.

Код активности:

MessageListRV = (RecyclerView) findViewById(R.id.message_list_sender_list);
        myLastDbHandler=new MyDbHandler(MessageList.this,LAST_MESSAGE+".db",null,1);
        messageListAdapter=new MessageListAdapter(myLastDbHandler.sqlLastMessagesList(),MessageListRV,this,myLastDbHandler);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        MessageListRV.setLayoutManager(linearLayoutManager);
        MessageListRV.setAdapter(messageListAdapter);
refresh.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                 messageListAdapter.updateData(myLastDbHandler.sqlMessagesList());
            }
        });

Код адаптера:

public void updateData(List<SqlMessages> sqlMessages)
    {
        this.userMessagesList=sqlMessages;
        notifyDataSetChanged();
    }

1 Ответ

1 голос
/ 26 октября 2019

Восстановление коллекции на адаптере не работает, вам нужно изменить коллекцию

public void updateData(List<SqlMessages> sqlMessages)
    {
        if (userMessagesList.size > 0) userMessagesList.clear();
        userMessagesList.addAllsqlMessages),
        notifyDataSetChanged();
    }
...