Skip to content Skip to sidebar Skip to footer

Data Doesn't Show Up On Recyclerview - Got Error No Layout Manager Attached; Skipping Layout

i tried to retrieving data from Firebase Realtime Database to Recycler-view. i already create Modul class called Ph.java and adapter called PhAdapter.java. but, i am so confused to

Solution 1:

You need to intialize LinearLayoutManager completely as follows:

recyclerView = (RecyclerView) findViewById(R.id.recycler_view1);
RecyclerView.LayoutManagerrecyce=newLinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);            
recyclerView.setLayoutManager(recyce);
PhAdapterphAdapter=newPhAdapter(dataph,MainActivity.this);
recyclerView.setAdapter(phAdapter);

Your corrected Activity class should look like this:

publicclassMainActivityextendsAppCompatActivity {

    FirebaseDatabase database;
    DatabaseReference myRef;
    List<Ph> dataph= newArrayList<>();
    RecyclerView recyclerView;
    PhAdapter phAdapter;
    Button cekdata;

    @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cekdata = (Button) findViewById(R.id.btn_cekdata);
        recyclerView = (RecyclerView) findViewById(R.id.recycler_view1);
        RecyclerView.LayoutManagerrecyce=newLinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);      
        recyclerView.setLayoutManager(recyce);
        phAdapter = newPhAdapter(dataph,MainActivity.this);
        recyclerView.setAdapter(phAdapter);


        database = FirebaseDatabase.getInstance();
        myRef = database.getReference("ph");

        myRef.addValueEventListener(newValueEventListener() {
            @OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot dataSnapshot1 :dataSnapshot.getChildren()){
                    Phvalue= dataSnapshot1.getValue(Ph.class);
                    PhphModel=newPh();
                    StringtvNilai= value.getNilai();
                    StringtvDate= value.getDate();
                    StringtvTime= value.getTime();
                    phModel.setNilai(tvNilai);
                    phModel.setDate(tvDate);
                    phModel.setTime(tvTime);
                    dataph.add(phModel);
                }
                phAdapter.notifyDataSetChanged();
            }

            @OverridepublicvoidonCancelled(DatabaseError databaseError) {
                //Failed to read value
                Log.w("Hello", "Failed to read Ph.", databaseError.toException());

            }
        });

        cekdata.setOnClickListener(newView.OnClickListener() {
            @OverridepublicvoidonClick(View view) {
                phAdapter.notifyDataSetChanged();
            }
        });
    }

}

Solution 2:

Just set the layout manager on your recycler view.

recyclerView.setLayoutManager(newLinearLayoutManager(this));

Solution 3:

There are 2 ways to set the layout manger to recycler view. In simple words LinearLayoutManager tells to recyclerView to create a list of elements in LinearLayout fashion.

JAVA

recyclerView.setLayoutManager(newLinearLayoutManager(this));

KOTLIN

recyclerView.layoutManager = LinearLayoutManager(this)

LAYOUT

<android.support.v7.widget.RecyclerView
   android:id="@+id/recyclerView"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   app:layoutManager="android.support.v7.widget.LinearLayoutManager"
    />

You can use any of them.

Best of luck :)

Solution 4:

Need to attach a layoutManager at the time of initialization.

recyclerView = (RecyclerView) findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

Post a Comment for "Data Doesn't Show Up On Recyclerview - Got Error No Layout Manager Attached; Skipping Layout"