android - RecyclerView not displaying without error -
i have started android development , till had no problem tried insert recyclerview layout , fine there no error recyclerview not displaying. code seems right me.
here's code:
mainactivity.java :
public class mainactivity extends appcompatactivity { private toolbar toolbar; private rvadapter adapter; private recyclerview recyclerview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); toolbar = (toolbar) findviewbyid(r.id.app_bar); setsupportactionbar(toolbar); getsupportactionbar().setdisplayshowhomeenabled(true); navigationdrawerfragment drawerfragment = (navigationdrawerfragment) getsupportfragmentmanager().findfragmentbyid(r.id.fragment_navigation_drawer); drawerfragment.setup(r.id.fragment_navigation_drawer, (drawerlayout) findviewbyid(r.id.drawer_layout), (toolbar) findviewbyid(r.id.app_bar)); recyclerview = (recyclerview) findviewbyid(r.id.goallist); recyclerview.sethasfixedsize(true); adapter = new rvadapter(getapplication(), getdata()); recyclerview.setadapter(adapter); recyclerview.setlayoutmanager(new linearlayoutmanager(getapplication())); } public static list<rvdata> getdata() { list<rvdata> data = new arraylist<>(); string[] titles = {"dummy1", "dummy2", "dummy3"}; (int = 0; < titles.length; i++) { rvdata current = new rvdata(); current.goaltitle = titles[i]; data.add(current); } return data; } public void newgoal(view view) { intent intent = new intent(mainactivity.this, newgoal.class); startactivity(intent); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } }
activity_main.xml:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" style="@style/defaultlayoutstyle" tools:context=".mainactivity"> <include android:id="@+id/app_bar" layout="@layout/app_bar" /> <android.support.design.widget.floatingactionbutton android:id="@+id/fab" style="@style/fabstyle" android:onclick="newgoal" android:src="@drawable/ic_add" app:borderwidth="0dp" /> <android.support.v4.widget.drawerlayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/app_bar"> <relativelayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <android.support.v7.widget.recyclerview android:id="@+id/goallist" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center"></android.support.v7.widget.recyclerview> </relativelayout> <fragment android:id="@+id/fragment_navigation_drawer" android:name="com.kellarapps.zeal.navigationdrawerfragment" android:layout_width="@dimen/nav_drawer_width" android:layout_height="match_parent" android:layout_gravity="start" app:layout="@layout/fragment_navigation_drawer" tools:layout="@layout/fragment_navigation_drawer" /> </android.support.v4.widget.drawerlayout> </relativelayout>
goal_row.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <checkbox android:id="@+id/goalrowcb" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <textview android:id="@+id/goalrowtitle" android:textsize="17sp" android:clickable="true" android:layout_width="match_parent" android:gravity="center_horizontal" android:layout_height="wrap_content" android:textcolor="@color/textcolor" android:text="@string/dummytxt"/> </linearlayout>
rvdata.java:
public class rvdata { checkbox checkbox; string goaltitle; }
rvadapter.java
public class rvadapter extends recyclerview.adapter<rvadapter.myviewholder> { list<rvdata> data = collections.emptylist(); private layoutinflater inflater; public rvadapter(context context, list<rvdata> cdata) { inflater = layoutinflater.from(context); this.data = cdata; } @override public myviewholder oncreateviewholder(viewgroup viewgroup, int i) { view view = inflater.inflate(r.layout.goal_row, viewgroup, false); myviewholder holder = new myviewholder(view); return holder; } @override public void onbindviewholder(myviewholder viewholder, int position) { rvdata current = data.get(position); viewholder.title.settext(current.goaltitle); } @override public int getitemcount() { return 0; } class myviewholder extends recyclerview.viewholder { @bind(r.id.goalrowtitle) textview title; @bind(r.id.goalrowcb) checkbox checkbox; public myviewholder(view itemview) { super(itemview); title = (textview) itemview; checkbox = (checkbox) itemview; } } }
there no error there no recyclerview.
one thing stands out, item count hard coded return 0. should return data size in function this:
@override public int getitemcount() { return data.size(); }
Comments
Post a Comment