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