Android-E/RecyclerView:未连接适配器;跳过布局

Android-E/RecyclerView:未连接适配器;跳过布局,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图在我的应用程序中实现一个回收器视图,但我得到了上面的错误。似乎我没有将适配器设置在正确的位置 为了给您一个概述,我需要根据不同查询的结果搜索数据库,因此我在MainActivity.class内创建了一个方法populateViews(query),将字符串格式的查询结果从onDataChanged() 我检查了日志,代码似乎进入了populateView方法,但找不到适配器 populateView方法如下: protected void populateView(Query query

我试图在我的应用程序中实现一个回收器视图,但我得到了上面的错误。似乎我没有将适配器设置在正确的位置

为了给您一个概述,我需要根据不同查询的结果搜索数据库,因此我在MainActivity.class内创建了一个方法
populateViews(query)
,将字符串格式的查询结果从
onDataChanged()

我检查了日志,代码似乎进入了populateView方法,但找不到适配器

populateView
方法如下:

protected void populateView(Query query) {

    menuRecyclerView.setHasFixedSize(true);
    menuRecyclerView.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions<Menu> options;
        FirebaseRecyclerAdapter<Menu, FirebaseViewHolder> adapter;

        options = new FirebaseRecyclerOptions.Builder<Menu>().setQuery(query, Menu.class).build();

        adapter = new FirebaseRecyclerAdapter<Menu, FirebaseViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull FirebaseViewHolder holder, int position, @NonNull Menu model) {

                holder.dishName.setText(model.getDishName());
                holder.dishPrice.setText(model.getDishPrice());

                Log.i("name", model.getDishName());
                Log.i("price", model.getDishPrice());

            }

            @NonNull
            @Override
            public FirebaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return new FirebaseViewHolder(LayoutInflater.from(MenuListActivity.this).inflate(R.layout.menu_list_layout, parent, false));
            }
    };

    menuRecyclerView.setAdapter(adapter);

}
protectedvoid populateView(查询){
menuRecyclerView.setHasFixedSize(true);
menuRecyclerView.setLayoutManager(新的LinearLayoutManager(this));
FirebaseRecyclerOptions选项;
FirebaseRecyclerAdapter适配器;
options=new FirebaseRecyclerOptions.Builder().setQuery(query,Menu.class).build();
适配器=新的FirebaseRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull FirebaseViewHolder,int位置,@NonNull菜单模型){
holder.dishName.setText(model.getDishName());
holder.dishPrice.setText(model.getDishPrice());
Log.i(“name”,model.getDishName());
Log.i(“price”,model.getDishPrice());
}
@非空
@凌驾
public FirebaseViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
返回新的FirebaseViewHolder(LayoutFlater.from(MenuListActivity.this)。充气(R.layout.menu_list_layout,parent,false));
}
};
menuRecyclerView.setAdapter(适配器);
}

编辑:添加了布局管理器,但仍然出现相同的错误。

在连接适配器之前,需要设置布局管理器。下面是帮助以垂直方式填充数据的layoutmanager示例

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
menuRecyclerView.setLayoutManager(linearLayoutManager);

您是否在
menuRecyclerView
中添加了
LayoutManager
,如下
menuRecyclerView.setLayoutManager(llm)你的menuRecyclerView的发布代码!menuRecyclerView是由LayoutManager添加的UII中的recyclerView的名称,但仍然是相同的错误。这是否回答了您的问题?我添加了方向,但仍然是相同的错误。尝试给出一个方向,就像我在回答中添加的方向一样。我添加了方向,但仍然是相同的错误
LinearLayoutManager layoutManager=新建LinearLayoutManager(此,LinearLayoutManager.VERTICAL,false);menuRecyclerView.setLayoutManager(layoutManager)您的回收器视图在设备中可见吗?这可能是一个错误,但它不提供正在显示的RNO数据