I just did a recycler scan and it didn’t work, so I set a breakpoint on getItemCount and the method is not called. I have never seen anyone else have such a problem, I'm sure this is something ridiculously obvious. Here is my code.
public class SearchAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private ArrayList<Object> displayList; public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View v) { super(v); } } public class ErrorSearchItem extends ViewHolder { //this is here if there is no other viewholder public ErrorSearchItem(View view) { super(view); } } public class HeaderViewHolder extends ViewHolder { public HeaderViewHolder(View view) { super(view); } } @Override public int getItemViewType(int position) { return position; } public SearchAdapter(ArrayList<Object> displayList) { this.displayList = displayList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (displayList.get(viewType) instanceof String){ View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.row_search_title, parent, false); return new HeaderViewHolder(itemView); } else{ //this is for if there is an error and no other xml files match View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.row_error_search_item, parent, false); return new ErrorSearchItem(itemView); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } @Override public int getItemCount() { return displayList.size(); } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); } }
edit: code snippet:
private RecyclerView recyclerView; private SearchAdapter searchAdapter; recyclerView = (RecyclerView) v.findViewById(R.id.recycler_view); searchAdapter = new SearchAdapter(categorizedArray); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setAdapter(searchAdapter);
source share