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"