[英]Adding 2 Arraylists to 1 Recyclerview
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);
}
}
我刚刚包括了主要部分。 两个Arraylist使用相同的Helper类。 一个是firebaserecycleradapter,它从firebase获取数据,另一个是fSQLitelite获取数据。 仅显示Firebase数据,而不显示SQLite。 有人可以帮我这个问题,以便将SQLite数据显示在顶部并在其下面显示Firebase吗? 我哪里出问题了
该表和数据存在
在您的适配器中实现此方法,以在数据列表的开头添加元素:
这是适配器内的数据列表:
private List<SQLiteHelper> data = new ArrayList<>();
使用此命令将新项目列表添加到适配器dataList:
public void addList(List<SQLiteHelper> newMessages) {
data.addAll(0, newMessages);
notifyDataSetChanged();
}
使用它向适配器数据列表添加一个新元素:
public void addElement(SQLiteHelper newMessage) {
data.add(0, newMessage);
notifyDataSetChanged();
}
这两种方法都将新元素添加到适配器列表的顶部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.