Добавление 2 Arraylists к 1 Recyclerview - PullRequest
0 голосов
/ 20 декабря 2018
private List<SQLiteHelper> messages = new ArrayList<>();

    mAdapter = new MessagesAdapter(messages);
    messageList.setAdapter(mAdapter);
    mAdapter.notifyDataSetChanged();

onStart

 while (csr.moveToNext()) {
                    String mSender = csr.getString(csr.getColumnIndex(KEY_SENDER));
                    String mMessage = csr.getString(csr.getColumnIndex(KEY_MESSAGE));
                    long mTime = csr.getLong(csr.getColumnIndex(KEY_TIME));
                    String mSeen = csr.getString(csr.getColumnIndex(KEY_SEEN));
                    String mTimer = csr.getString(csr.getColumnIndex(KEY_TIMER));
                    String mType = csr.getString(csr.getColumnIndex(KEY_TYPE));

                    messages.add(new SQLiteHelper(mSender, mMessage, mType, mSeen, mTimer, mTime));
                }

onCreate

    FirebaseRecyclerOptions<SQLiteHelper> options =
            new FirebaseRecyclerOptions.Builder<SQLiteHelper>()
                    .setQuery(mFetchingMessages, SQLiteHelper.class)
                    .build();

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<SQLiteHelper, Chat.MessagesViewHolder>(options) {

            final DatabaseReference mTimeReference = FirebaseDatabase.getInstance().getReference().child("Messages").child(MessageSenderId).child(MessageRecieverId);
            Query messageQuery = mTimeReference.limitToLast(10);

            messageQuery.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                    for (DataSnapshot ds : dataSnapshot.getChildren()) {
                        SQLiteHelper message = dataSnapshot.getValue(SQLiteHelper.class);



                        messages.add(message);
                        messageList.scrollToPosition(messagesList.size() - 1);
                    }
                }

Я только что включил основные части.Оба Arraylists используют один и тот же класс помощников.Один - это firebaserecycleradapter, извлекающий данные из firebase, а другой - данные fSQLitelite.Отображаются только данные базы данных, а не SQLite.Может ли кто-нибудь помочь мне с этим, чтобы данные SQLite отображались в верхней части, а база данных под ними?Где я ошибся

Таблица и данные существуют

1 Ответ

0 голосов
/ 20 декабря 2018

Реализуйте этот метод в своем адаптере, чтобы добавить элемент в начало списка данных:

Это список данных в вашем адаптере:

private List<SQLiteHelper> data = new ArrayList<>();

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

public void addList(List<SQLiteHelper> newMessages) {

    data.addAll(0, newMessages);

    notifyDataSetChanged();
}

Используйте это для добавления одного нового элемента в список данных адаптера:

public void addElement(SQLiteHelper newMessage) {

    data.add(0, newMessage);

    notifyDataSetChanged(); 
}

Оба эти метода добавляют новые элементы в начало списка адаптеров.

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