如何检测空值或 FirebaseRecyclerAdapter 中不存在子值
How to detect null value or no child values present in FirebaseRecyclerAdapter
我在我的应用程序中广泛使用了 Firebase RecyclerViewAdapter,但是由于下面的代码不会在没有任何数据加载的情况下触发 populateViewHolder,所以我无法显示初始的加载完成消息负载
RecyclerView recycler = (RecyclerView) findViewById(R.id.messages_recycler);
recycler.setHasFixedSize(true);
recycler.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(Chat.class, android.R.layout.two_line_list_item, ChatHolder.class, mRef) {
@Override
public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
chatMessageViewHolder.setName(chatMessage.getName());
chatMessageViewHolder.setText(chatMessage.getText());
}
};
recycler.setAdapter(mAdapter);
if(chatMessage.getName().equals("")){ //null value }else{
//execute code }
此功能涵盖您所描述的内容:Handle empty state for recycleview. You can handle this by implementing onDataChanged()
in your adapter. A snippet from the sample app of FirebaseUI:
@Override
protected void onDataChanged() {
// if there are no chat messages, show a view that invites the user to add a message
mEmptyListView.setVisibility(
mRecyclerViewAdapter.getItemCount() == 0 ? View.VISIBLE : View.INVISIBLE
);
}
覆盖 onDataChanged() 并签入它
mAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(Chat.class, android.R.layout.two_line_list_item, ChatHolder.class, mRef) {
@Override
public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
chatMessageViewHolder.setName(chatMessage.getName());
chatMessageViewHolder.setText(chatMessage.getText());
}
@Override
protected void onDataChanged() {
// do your tests here
}
};
我在我的应用程序中广泛使用了 Firebase RecyclerViewAdapter,但是由于下面的代码不会在没有任何数据加载的情况下触发 populateViewHolder,所以我无法显示初始的加载完成消息负载
RecyclerView recycler = (RecyclerView) findViewById(R.id.messages_recycler);
recycler.setHasFixedSize(true);
recycler.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(Chat.class, android.R.layout.two_line_list_item, ChatHolder.class, mRef) {
@Override
public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
chatMessageViewHolder.setName(chatMessage.getName());
chatMessageViewHolder.setText(chatMessage.getText());
}
};
recycler.setAdapter(mAdapter);
if(chatMessage.getName().equals("")){ //null value }else{ //execute code }
此功能涵盖您所描述的内容:Handle empty state for recycleview. You can handle this by implementing onDataChanged()
in your adapter. A snippet from the sample app of FirebaseUI:
@Override
protected void onDataChanged() {
// if there are no chat messages, show a view that invites the user to add a message
mEmptyListView.setVisibility(
mRecyclerViewAdapter.getItemCount() == 0 ? View.VISIBLE : View.INVISIBLE
);
}
覆盖 onDataChanged() 并签入它
mAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(Chat.class, android.R.layout.two_line_list_item, ChatHolder.class, mRef) {
@Override
public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
chatMessageViewHolder.setName(chatMessage.getName());
chatMessageViewHolder.setText(chatMessage.getText());
}
@Override
protected void onDataChanged() {
// do your tests here
}
};