i have menu in navigation drawer positions "movies, music, books" etc. decided create fragment , adapter each category, shown diffrent lists.
here's code of first fragment - moviesfragment.java
public class moviesfragment extends fragment { private movieadapter movieadapter; @bindview(r.id.moviesrecyclerview) recyclerview moviesrecyclerview; public moviesfragment() { // required empty public constructor } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.fragment_movies, container, false); butterknife.bind(this, view); moviesrecyclerview.setlayoutmanager(new linearlayoutmanager(getactivity())); linearlayoutmanager layoutmanager = new linearlayoutmanager(getactivity()); layoutmanager.setorientation(linearlayoutmanager.vertical); moviesrecyclerview.setlayoutmanager(layoutmanager); moviesrecyclerview.setadapter(movieadapter); moviesrecyclerview.setitemanimator(new defaultitemanimator()); return view; }}
and i'm trying connect movieadapter.java code is:
public class movieadapter extends recyclerview.adapter<movieviewholder>{ private final fragmentactivity layoutinflater; private list<string> movies = new arraylist<>(); public movieadapter(fragmentactivity layoutinflater){ this.layoutinflater = layoutinflater; movies.add("pulp fcition"); } @override public movieviewholder oncreateviewholder(viewgroup parent, int viewtype) { // view view = layoutinflater.inflate(android.r.layout.simple_list_item_1, parent, false); // return new movieviewholder(view); return null; } @override public void onbindviewholder(movieviewholder holder, int position) { string movietitle = movies.get(position); holder.setmovietitle(movietitle); } @override public int getitemcount() { return movies.size(); } } class movieviewholder extends recyclerview.viewholder{ private string movietitle; private textview textview; public movieviewholder(view itemview) { super(itemview); textview = (textview) itemview; } public void setmovietitle(string movietitle) { this.movietitle = movietitle; textview.settext(movietitle); } public string getmovietitle() { return movietitle; } }
but i'm getting error:
7896-7896/zakrzk.myappname e/androidruntime: fatal exception: main process: zakrzk.kurwtura, pid: 7896 theme: themes:{default=overlay:system, iconpack:system, fontpkg:system, com.android.systemui=overlay:system, com.android.systemui.navbar=overlay:system} java.lang.nullpointerexception: attempt invoke virtual method 'void android.support.v7.widget.recyclerview.setlayoutmanager(android.support.v7.widget.recyclerview$layoutmanager)' on null object reference @ zakrzk.kurwtura.moviesfragment.oncreateview(moviesfragment.java:40) @ android.support.v4.app.fragment.performcreateview(fragment.java:1974) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1067) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1252) @ android.support.v4.app.backstackrecord.run(backstackrecord.java:742) @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1617) @ android.support.v4.app.fragmentmanagerimpl$1.run(fragmentmanager.java:517) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5461) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) @ de.robv.android.xposed.xposedbridge.main(xposedbridge.java:102)
how can fix that?
and best solution easly adding new positions lists?
greetings
it may caused return statement:
@override public movieviewholder oncreateviewholder(viewgroup parent, int viewtype) { // view view = layoutinflater.inflate(android.r.layout.simple_list_item_1, parent, false); // return new movieviewholder(view); return null; }
why return null?
Comments
Post a Comment