Notify user of empty data sets(still RecyclerView)
rutura edited this page Apr 16, 2017
·
1 revision
- Quick Code:
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case SIMPLE_ITEM:
holder.textView.setText("Item nr " + (position + 1) + ". Tap to remove.");
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int itemPosition = holder.getAdapterPosition();
itemCount--;
notifyItemRemoved(itemPosition);
if(itemCount == 0) {
notifyItemInserted(0);
}
}
});
break;
case EMPTY_ITEM:
holder.refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
notifyItemRemoved(0);
itemCount = 10;
notifyItemRangeInserted(0, 10);
}
});
break;
}
}
- Show a visual representation that the data set is empty
- Show some kind or refresh button to load data into the view
- Override getItemViewType(int position) to let the adapter know which kind of view it is dealing with.
- NOTE : There is not actual data in the adapter of this example.In onBindViewHolder, we are simply tricking the view into thinking it has more items to display using notifyItemRangeInserted(0, 10)
- Relevant files :