android - 回收站 View 未调用 getItemCount

标签 android android-recyclerview

我刚刚制作了一个回收器 View ,但它没有工作,所以我在 getItemCount 上设置了一个断点,但该方法没有被调用。我从未见过 SO 上的任何其他人有这个特定问题,我相信这是非常明显的事情。这是我的代码。

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);

}

}

编辑: fragment 代码:

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);

最佳答案

在应用适配器之前添加recycler.setLayoutManager(new LinearLayoutManager(this));

关于android - 回收站 View 未调用 getItemCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522567/

相关文章:

java - 如何从用户定义的时间中减去系统时间

Android mipmap,图像密度?

android - 无需轮询即可访问串行端口 (/dev/tty*) 传入数据

android - 单击 fragment 中包含的 RecyclerView 中的项目以使用传递的数据打开新 Activity

android - 如何使 CardView 和 CardView 中的 RecyclerView 具有低项目时的大小

android - RecycleView 的跨度大小

android - R.layout.main 的问题

php - 如何修复android studio中的登录错误

android - RecyclerView 在打开软键盘时隐藏操作栏

Android RecyclerView重力问题