当前位置: 首页 > 知识库问答 >
问题:

如何解决E/RecyclerView:未连接适配器;跳过布局?[副本]

法和硕
2023-03-14

我正在使用Firebase数据库开发一个带有片段和回收器视图的应用程序。我希望该应用程序从数据库中获取数据并将其显示在片段布局中。我非常认为我的代码很好,应该可以正常工作。

我得到错误日志E/RecyclerView:未连接适配器;跳过布局

我在其他问题和论坛上尝试了一切。

这是我的家。java代码:

public class home extends Fragment {

private OnFragmentInteractionListener mListener;

public home() {
}
// TODO: Rename and change types and number of parameters
public static home newInstance() {
    home fragment = new home();
    Bundle args = new Bundle();
    fragment.setArguments(args);
    return fragment;
}

//to recycler view.
private RecyclerView recyclerView;
public View view;
private ArrayList<Model> listItem;
ViewAdapter Vadapter;
DatabaseReference dbRef;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    view = inflater.inflate(R.layout.fragment_home, container,false);
    recyclerView = view.findViewById(R.id.carDetailsContainer);
    listItem = new ArrayList<Model>();
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(layoutManager);
    dbRef = FirebaseDatabase.getInstance().getReference().child("Cars");
    Vadapter = new ViewAdapter(getContext(),listItem);
    recyclerView.setAdapter(Vadapter);
    return inflater.inflate(R.layout.fragment_home, container, false);
}

@Override
public void onStart() {
    super.onStart();
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot ds : dataSnapshot.getChildren())
            {
                Model model = new Model(ds.child("Name").getValue().toString(),ds.child("Milege").getValue().toString(),ds.child("Fuel").getValue().toString(),ds.child("Transmission").getValue().toString(),ds.child("Rate").getValue().toString());
                listItem.add(model);
            }

            Vadapter = new ViewAdapter(getContext(),listItem);
            recyclerView.setAdapter(Vadapter);

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    };

    dbRef.addValueEventListener(valueEventListener);
}

public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onFragmentInteraction(Uri uri);
}

}

我的适配器类:

public class ViewAdapter extends RecyclerView.Adapter<ViewAdapter.MyViewHolder> {


DatabaseReference ref;
FirebaseDatabase fbRref;
Context context;
ArrayList<Model> model;

public ViewAdapter(Context c, ArrayList<Model> listItems)
{
    this.context = c;
    this.model = listItems;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater inflater = LayoutInflater.from(context);
    View view = inflater.inflate(R.layout.car_details, parent, false);
    fbRref = FirebaseDatabase.getInstance();
    ref = fbRref.getReference();
    return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    holder.carName.setText(model.get(position).getmCarName());
    holder.seatingCapacity.setText(model.get(position).getmSeatingCapacity());
}

@Override
public int getItemCount() {
    return model.size();
}

class MyViewHolder extends RecyclerView.ViewHolder
{
    public TextView carName,seatingCapacity;
    public MyViewHolder(@NonNull View itemView)
    {
        super(itemView);
        carName = itemView.findViewById(R.id.car_name);
        seatingCapacity = itemView.findViewById(R.id.seating_capacity);
    }
}

}

我在这方面陷入了困境。提前感谢。

共有2个答案

苍烨然
2023-03-14

您应该将RecylcerView的初始化移动到创建的视图中,而不是创建视图中,请看这个答案

梁丘佑运
2023-03-14

尝试更改

return inflater.inflate(R.layout.fragment_home, container, false); 

return view;
 类似资料:
  • 当应用程序启动时,我得到一个空白屏幕,当我检查日志时,我得到:E/回收人员视图:没有连接适配器;跳过布局错误 我不知道为什么?任何想法,它似乎没有附加回收器视图或添加任何数据,我附加了Main活动、DataAdapter和数据类。 主要活动 数据适配器 下面是我的数据类,将从中提取数据 我ncluded.java 收集器和设置器 这是jsonResponse类,在接口中引用 感谢任何帮助。

  • 我已经创建了一个片段,在该片段中有一个recycle view,但是当我的片段被加载时,什么也没有显示,它给出了这个错误“E/recycle view:没有连接适配器;跳过布局”。下面是适配器和片段类的代码,任何帮助都将不胜感激 适配器类: 片段类: fragment _ view _ all _ my _ recipes . XML view_all_recipe_item.xml

  • 我制作了一个基本的购物清单应用程序,它利用回收器视图来显示列表项目。我正在尝试使用带有片段的导航添加设置屏幕。我遇到了我的回收器视图的问题 主活动.kt HomeFragment.kt 设置Fragment.kt activity_main.xml fragment\u home.xml navigation.xml 不确定是否需要更多信息。提前道歉-我是android studio的新手

  • 一切正常,但数据没有显示。 但是当我签入“logcat”时,我发现了这个错误消息: 2021 10月20日11:29:37.387 7327-7327/com。实例myplay E/RecyclerView:未连接适配器;跳过布局 2021-10-20 11:29:37.388 7327-7327/com.example.myplayE/RecyClerView:未连接适配器;跳过布局 主要活动。

  • 这是我的密码管理活动 包裹通讯。实例密码管理器; 这是我导入的库 定义变量 开始设置视图@覆盖在创建(捆绑保存的即时状态)上受保护的空{super.on创建(保存的即时状态);setContentView(R.layout.activity_password_manager);工具栏=findViewById(R.id.toolbar); 出现以下错误:

  • 我想从火力点实时数据库显示图片。(带有加密图像(字符串))类似加密图像是“照片” 函数loadPhoto() 问题出在哪里?我连接adapter和recyclerview,并设置GridManager。