E/RecyclerView: No adapter attached; skipping layout error in Andorid studio.

If you have this error:-

E/RecyclerView: No adapter attached; skipping layout

Or

recyclerview No adapter attached; skipping layout.


- Solution

IF your code looks like this.


RecyclerView recyclerView = view.findViewById(R.id.recyclerView);

recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(mRecycleAdapter);

mHistoryViewModel = ViewModelProviders.of(this).get(HistoryViewModel.class);

mRecycleAdapter = new RecycleAdapter(getActivity());


Change to this Code Down Below.

RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setHasFixedSize(true);


mHistoryViewModel = ViewModelProviders.of(this).get(HistoryViewModel.class);
mRecycleAdapter = new RecycleAdapter(getActivity());
recyclerView.setAdapter(mRecycleAdapter);

You have to wirte recyclerView.setAdapter(mRecycleAdapter);
Below the mRecycleAdapter = new RecycleAdapter(getActivity()); Also.

Comments

  1. Sir i have same problem like you, and this is my code :

    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home, container, false);
    addPost = view.findViewById(R.id.addPostBtn);

    FirebaseAuth = firebaseAuth.getInstance();


    addPost.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    Intent intent = new Intent(getActivity(), AddPostActivity.class);
    startActivity(intent);
    }
    });


    //recyclerview and its properties
    recyclerView = view.findViewById(R.id.postRecyclerview);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setHasFixedSize(true);
    //show newest post first, for this load from last
    layoutManager.setStackFromEnd(true);
    layoutManager.setReverseLayout(true);
    //set Layou to recyclerview
    recyclerView.setLayoutManager(layoutManager);
    //init postList
    postList = new ArrayList<>();
    loadPosts();

    return view;
    }

    private void loadPosts() {
    //path of all posts
    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Posts");
    //get all data from this ref
    reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    postList.clear();
    for (DataSnapshot ds: dataSnapshot.getChildren()){
    ModelPost modelPost = ds.getValue(ModelPost.class);

    postList.add(modelPost);

    //adapter
    adapterPosts = new AdapterPosts(getActivity(), postList);
    //set Adapter to recyclerview
    recyclerView.setAdapter(adapterPosts);
    adapterPosts.notifyDataSetChanged();
    }

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
    //in case of error
    Toast.makeText(getActivity(), ""+databaseError.getMessage(), Toast.LENGTH_SHORT).show();

    }
    });
    }

    i need your help please, thank you...

    ReplyDelete
  2. please solve my error too at the given link
    https://stackoverflow.com/questions/61537064/recyclerview-no-adapter-attached-skipping-layout-tried-the-solutions-on-stackov

    ReplyDelete

Post a Comment

Popular posts from this blog

Error:java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240) at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:215) at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:143) at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:78) at com.google.android.material.chip.ChipDrawable.loadFromAttributes(ChipDrawable.java:359) at com.google.android.material.chip.ChipDrawable.createFromAttributes(ChipDrawable.java:292) at com.google.android.material.chip.Chip.(Chip.java:193) at com.google.android.material.chip.Chip.(Chip.java:186) at com.google.android.material.chip.Chip.(Chip.java:182) at com.demo.nspl.restaurantlite.Navigation_Drawer.SalesFragment.getFilterChip(SalesFragment.java:158) at com.demo.nspl.restaurantlite.Navigation_Drawer.SalesFragment.lambda$onCreateView$0(SalesFragment.java:71) at com.demo.nspl.restaurantlite.Navigation_Drawer.-$$Lambda$SalesFragment$KCm-iiczjdYbpiNmaNw12gtFOoQ.onClick(lambda) at android.view.View.performClick(View.java:5268) at android.view.View$PerformClick.run(View.java:21550) at android.os.Handler.handleCallback(Handler.java:822) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5811) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)

ViewModelProviders.of(this) is deprecated what to use instead ViewModelProviders.of(this) OR if you don't want to use ViewmodelFactory OR ViewModelProviders error.

java.lang.IllegalStateException: attempt to re-open an already-closed object: or Attempt to reopen an already-closed object sqlitedatabase or Room attempt to re-open an already closed database.