java - Recyclerview not working, app crashed -
package com.example.sander.app; import android.app.fragment; import android.content.intent; import android.os.bundle; import android.support.v7.widget.cardview; import android.support.v7.widget.linearlayoutmanager; import android.support.v7.widget.recyclerview; import android.view.layoutinflater; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.framelayout; import android.widget.textview; import com.android.volley.request; import com.android.volley.requestqueue; import com.android.volley.response; import com.android.volley.volleyerror; import com.android.volley.toolbox.stringrequest; import com.android.volley.toolbox.volley; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.util.arraylist; import java.util.collections; import java.util.list; /** * created sander on 6-4-2017. */ public class recycleframe extends fragment { arraylist<string> names = new arraylist<>(); arraylist<integer> cpoints = new arraylist<>(); boolean sort = false; public recycleframe() { // required empty public constructor } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @override public void oncreateoptionsmenu(menu menu, menuinflater inflater) { inflater.inflate(r.menu.fragment_view, menu); super.oncreateoptionsmenu(menu,inflater); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { sethasoptionsmenu(true); // inflate layout fragment view view = inflater.inflate(r.layout.fragment_recycle, container, false); final recyclerview vrecyclerview = (recyclerview) view.findviewbyid(r.id.rv_recycler_view); requestqueue rq = volley.newrequestqueue(getactivity().getapplicationcontext()); string url= "http://test.dontstealmywag.ga/api/parkgarage_all.php"; stringrequest stringrequest = new stringrequest(request.method.get, url, new response.listener<string>() { @override public void onresponse(string response) { // response try{ jsonobject o = new jsonobject(response); jsonarray values=o.getjsonarray(""); ( int i=0; i< values.length(); i++) { jsonobject jsonobject = values.getjsonobject(i); names.add(jsonobject.getstring("parkgarage_name")); cpoints.add(jsonobject.getint("charging_capacity")); // want add recycler viewer } } catch (jsonexception ex){} collections.sort(names); vrecyclerview.sethasfixedsize(true); recycleadapter adapter = new recycleadapter(names, cpoints); vrecyclerview.setadapter(adapter); linearlayoutmanager llm = new linearlayoutmanager(getactivity()); vrecyclerview.setlayoutmanager(llm); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { // handle error } }); rq.add(stringrequest); return view; } } this code recyclerframe, in here can see cpoints.add(jsonobject.getint("charging_capacity")); want display inside recyclerviewer, can display names array.
this recycleradapter code:
package com.example.sander.app; import android.app.fragment; import android.media.image; import android.os.bundle; import android.support.v7.widget.cardview; import android.support.v7.widget.linearlayoutmanager; import android.support.v7.widget.recyclerview; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.textview; import java.util.arraylist; /** * created sander on 6-4-2017. */ public class recycleadapter extends recyclerview.adapter<recycleadapter.myviewholder> { arraylist<string> arraydataset; arraylist<integer> arraydataset2; public static class myviewholder extends recyclerview.viewholder{ public cardview mcardview; public textview mtextview; public textview mtextview2; public imageview mimageview; public myviewholder(view v){ super(v); mcardview = (cardview) v.findviewbyid(r.id.card_view); mtextview = (textview) v.findviewbyid(r.id.tv_blah); mtextview2 = (textview) v.findviewbyid(r.id.tv_blah2); mimageview = (imageview) v.findviewbyid(r.id.imageview1); } } public recycleadapter(arraylist<string> names, arraylist<integer> cpoints){ arraydataset = names; arraydataset2= cpoints; } @override public recycleadapter.myviewholder oncreateviewholder(viewgroup parent, int viewtype){ view v = layoutinflater.from(parent.getcontext()).inflate(r.layout.fragment_card_view, parent, false); myviewholder vh = new myviewholder(v); return vh; } @override public void onbindviewholder(myviewholder holder, int position){ holder.mtextview.settext(arraydataset.get(position)); holder.mtextview2.settext(arraydataset2.get(position)); holder.mimageview.setimageresource(r.drawable.ic_local_parking_black_24dp); } @override public int getitemcount() { return arraydataset.size(); } } this code i've made sofar when open in app app crashed me fixing this
logcat after updating code
04-07 18:47:59.341 5581-5581/com.example.sander.app e/recyclerview: no adapter attached; skipping layout 04-07 18:47:59.344 5581-5712/com.example.sander.app d/networksecurityconfig: no network security config specified, using platform default 04-07 18:47:59.493 5581-5581/com.example.sander.app w/resourcetype: no package identifier when getting value resource number 0x00000000 04-07 18:47:59.493 5581-5581/com.example.sander.app d/androidruntime: shutting down vm 04-07 18:47:59.494 5581-5581/com.example.sander.app e/androidruntime: fatal exception: main process: com.example.sander.app, pid: 5581 android.content.res.resources$notfoundexception: string resource id #0x0 @ android.content.res.resources.gettext(resources.java:335) @ android.widget.textview.settext(textview.java:4555) @ com.example.sander.app.recycleadapter.onbindviewholder(recycleadapter.java:56) @ com.example.sander.app.recycleadapter.onbindviewholder(recycleadapter.java:21) @ android.support.v7.widget.recyclerview$adapter.onbindviewholder(recyclerview.java:6356) @ android.support.v7.widget.recyclerview$adapter.bindviewholder(recyclerview.java:6389) @ android.support.v7.widget.recyclerview$recycler.trybindviewholderbydeadline(recyclerview.java:5335) @ android.support.v7.widget.recyclerview$recycler.trygetviewholderforpositionbydeadline(recyclerview.java:5598) @ android.support.v7.widget.recyclerview$recycler.getviewforposition(recyclerview.java:5440) @ android.support.v7.widget.recyclerview$recycler.getviewforposition(recyclerview.java:5436) @ android.support.v7.widget.linearlayoutmanager$layoutstate.next(linearlayoutmanager.java:2224) @ android.support.v7.widget.linearlayoutmanager.layoutchunk(linearlayoutmanager.java:1551) @ android.support.v7.widget.linearlayoutmanager.fill(linearlayoutmanager.java:1511) @ android.support.v7.widget.linearlayoutmanager.onlayoutchildren(linearlayoutmanager.java:595) @ android.support.v7.widget.recyclerview.dispatchlayoutstep2(recyclerview.java:3583) @ android.support.v7.widget.recyclerview.dispatchlayout(recyclerview.java:3312) @ android.support.v7.widget.recyclerview.onlayout(recyclerview.java:3844) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.relativelayout.onlayout(relativelayout.java:1079) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.support.constraint.constraintlayout.onlayout(constraintlayout.java:1197) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.support.design.widget.headerscrollingviewbehavior.layoutchild(headerscrollingviewbehavior.java:131) @ android.support.design.widget.viewoffsetbehavior.onlayoutchild(viewoffsetbehavior.java:42) @ android.support.design.widget.appbarlayout$scrollingviewbehavior.onlayoutchild(appbarlayout.java:1391) @ android.support.design.widget.coordinatorlayout.onlayout(coordinatorlayout.java:870) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.support.v4.widget.drawerlayout.onlayout(drawerlayout.java:1193) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.linearlayout.setchildframe(linearlayout.java:1741) @ android.widget.linearlayout.layoutvertical(linearlayout.java:1585) @ android.widget.linearlayout.onlayout(linearlayout.java:1494) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) 04-07 18:47:59.494 5581-5581/com.example.sander.app e/androidruntime: @ android.widget.linearlayout.setchildframe(linearlayout.java:1741) @ android.widget.linearlayout.layoutvertical(linearlayout.java:1585) @ android.widget.linearlayout.onlayout(linearlayout.java:1494) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ com.android.internal.policy.decorview.onlayout(decorview.java:726) @ android.view.view.layout(view.java:17637) @ android.view.viewgroup.layout(viewgroup.java:5575) @ android.view.viewrootimpl.performlayout(viewrootimpl.java:2346) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:2068) @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1254) @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:6337) @ android.view.choreographer$callbackrecord.run(choreographer.java:874) @ android.view.choreographer.docallbacks(choreographer.java:686) @ android.view.choreographer.doframe(choreographer.java:621) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:860) @ android.os.handler.handlecallback(handler.java:751) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:154) @ android.app.activitythread.main(activitythread.java:6119) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:886) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:776)
it's crashing because setting integer on mtextview2's settextview method accept charsequence code should holder.mtextview2.settext(string.valueof(arraydataset2.get(position)));
Comments
Post a Comment