Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在android平板电脑中使用EventBus绑定RecyclerView_Android_Greenrobot Eventbus - Fatal编程技术网

无法在android平板电脑中使用EventBus绑定RecyclerView

无法在android平板电脑中使用EventBus绑定RecyclerView,android,greenrobot-eventbus,Android,Greenrobot Eventbus,我正在使用Green Robot的EventBus进行内部事件消息传递,我想使用EventBus在我的RecyclerView中显示数据。问题是EventBus post消息被正确接收并在Android 5''设备上显示数据,但相同的代码在7''和10''平板电脑上不起作用。当片段第一次加载时,它在所有设备上都起作用,但当我尝试使用EventBus绑定数据时,它不起作用 StaggeredGridLayoutManager staggeredGridLayoutManager = new

我正在使用Green Robot的EventBus进行内部事件消息传递,我想使用EventBus在我的RecyclerView中显示数据。问题是EventBus post消息被正确接收并在Android 5''设备上显示数据,但相同的代码在7''和10''平板电脑上不起作用。当片段第一次加载时,它在所有设备上都起作用,但当我尝试使用EventBus绑定数据时,它不起作用

   StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(colCount, StaggeredGridLayoutManager.VERTICAL);

        recyclerView.setLayoutManager(staggeredGridLayoutManager);

        SpacesItemDecoration decoration = new SpacesItemDecoration(4);
        recyclerView.addItemDecoration(decoration);

        recyclerView.setHasFixedSize(true);
        CategoryAdapter categoryAdapter = new CategoryAdapter(new ArrayList<Category>(), mListener);
        recyclerView.setAdapter(categoryAdapter);
上面的代码是我的EventBus订阅方法

 private void bindCategories(final int classification) {

    List<Category> categories = new ArrayList<>();
    if (classification == 1) {
        categories = DbAccessHelper.CategoriesHelper.getVegCategories(getActivity());
    } else if (classification == 2) {
        categories = DbAccessHelper.CategoriesHelper.getNonVegCategories(getActivity());
    } else if (classification == 3) {
        categories = DbAccessHelper.CategoriesHelper.getAllCategories(getActivity());
    }
    if (categories != null) {
        if (!categories.isEmpty()) {
            tvError.setVisibility(View.GONE);
            recyclerView.setVisibility(View.VISIBLE);
            CategoryAdapter categoryAdapter = new CategoryAdapter(categories, mListener);
            recyclerView.setAdapter(categoryAdapter);
            categoryAdapter.notifyDataSetChanged();
        } else {
            tvError.setVisibility(View.VISIBLE);
            recyclerView.setVisibility(View.GONE);
            CategoryAdapter categoryAdapter = new CategoryAdapter(new ArrayList<Category>(), mListener);
            recyclerView.setAdapter(categoryAdapter);
        }
    } else {
        tvError.setVisibility(View.VISIBLE);
        recyclerView.setVisibility(View.GONE);
        CategoryAdapter categoryAdapter = new CategoryAdapter(new ArrayList<Category>(), mListener);
        recyclerView.setAdapter(categoryAdapter);
    }


}
private void bindCategories(最终整数分类){
列表类别=新建ArrayList();
如果(分类==1){
categories=DbAccessHelper.CategoriesHelper.getVegCategories(getActivity());
}否则如果(分类==2){
categories=DbAccessHelper.categieshelper.getNonSegCategories(getActivity());
}否则如果(分类==3){
categories=DbAccessHelper.CategoriesHelper.getAllCategories(getActivity());
}
如果(类别!=null){
如果(!categories.isEmpty()){
tveerror.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
CategoryAdapter CategoryAdapter=新的CategoryAdapter(类别,mListener);
recyclerView.setAdapter(类别适配器);
categoryAdapter.notifyDataSetChanged();
}否则{
tveerror.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
CategoryAdapter CategoryAdapter=新的CategoryAdapter(新ArrayList(),mListener);
recyclerView.setAdapter(类别适配器);
}
}否则{
tveerror.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
CategoryAdapter CategoryAdapter=新的CategoryAdapter(新ArrayList(),mListener);
recyclerView.setAdapter(类别适配器);
}
}

此方法用于将RecyclerView与数据绑定。有人能帮我找到问题吗?

你有什么异常吗?没有异常,我检查了日志,只有getItemCount()在适配器中被调用,onBindViewHolder没有被调用这与线程有关吗?如果(!categories.isEmpty()),请有人帮助您确定您的流量是否正常?试着调试。是的,它在该块中运行,该代码在5英寸移动设备中运行良好,问题是在7英寸和10英寸的表格中您是否遇到异常?没有异常,我检查了日志,只有getItemCount()在我的适配器中被调用,onBindViewHolder没有被调用这与线程有关吗?如果(!categories.isEmpty()),请有人帮助您确定您的流量是否正常?试着调试一下。是的,这段代码就在那个块里,在5英寸的移动设备上运行得很好,问题出在7英寸和10英寸的平板电脑上
 private void bindCategories(final int classification) {

    List<Category> categories = new ArrayList<>();
    if (classification == 1) {
        categories = DbAccessHelper.CategoriesHelper.getVegCategories(getActivity());
    } else if (classification == 2) {
        categories = DbAccessHelper.CategoriesHelper.getNonVegCategories(getActivity());
    } else if (classification == 3) {
        categories = DbAccessHelper.CategoriesHelper.getAllCategories(getActivity());
    }
    if (categories != null) {
        if (!categories.isEmpty()) {
            tvError.setVisibility(View.GONE);
            recyclerView.setVisibility(View.VISIBLE);
            CategoryAdapter categoryAdapter = new CategoryAdapter(categories, mListener);
            recyclerView.setAdapter(categoryAdapter);
            categoryAdapter.notifyDataSetChanged();
        } else {
            tvError.setVisibility(View.VISIBLE);
            recyclerView.setVisibility(View.GONE);
            CategoryAdapter categoryAdapter = new CategoryAdapter(new ArrayList<Category>(), mListener);
            recyclerView.setAdapter(categoryAdapter);
        }
    } else {
        tvError.setVisibility(View.VISIBLE);
        recyclerView.setVisibility(View.GONE);
        CategoryAdapter categoryAdapter = new CategoryAdapter(new ArrayList<Category>(), mListener);
        recyclerView.setAdapter(categoryAdapter);
    }


}