android - Having null pointer exception when scrolling gridview towards bottom -
i making android app in made custom gallery. when show image in grid works fine when scroll gridview down getting null pointer exception using holderview class , not working on activity. working on fragments
here getview function
public view getview(int position, view convertview, viewgroup parent) { viewholder holder; view rootview=convertview; if (convertview == null) { holder = new viewholder(); rootview = minflater.inflate( r.layout.gallery_item, null); holder.imageview = (imageview) rootview.findviewbyid(r.id.thumbimage); rootview.settag(holder); } else { holder = (viewholder) rootview.gettag(); } holder.imageview.setid(position); holder.imageview.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { // todo auto-generated method stub int id = v.getid(); intent intent = new intent(); intent.setaction(intent.action_view); intent.setdataandtype(uri.parse("file://" + arrpath[id]), "image/*"); startactivity(intent); } }); holder.imageview.setimagebitmap(thumbnails[position]); bytearrayoutputstream baos = new bytearrayoutputstream(); thumbnails[position].compress(bitmap.compressformat.jpeg, 100, baos); //here error null pointer exception byte[] b = baos.tobytearray(); string encodedimage = base64.encodetostring(b, base64.default); holder.id = position; return rootview; } } static class viewholder { imageview imageview; static int id; }
here logcat
java.lang.nullpointerexception @ com.tabdemo.tab1fragment$imageadapter.getview(tab1fragment.java:117) @ android.widget.abslistview.obtainview(abslistview.java:2186) @ android.widget.gridview.makeandaddview(gridview.java:1341) @ android.widget.gridview.makerow(gridview.java:341) @ android.widget.gridview.filldown(gridview.java:283) @ android.widget.gridview.fillgap(gridview.java:243) @ android.widget.abslistview.trackmotionscroll(abslistview.java:5257) @ android.widget.abslistview.scrollifneeded(abslistview.java:3179) @ android.widget.abslistview.ontouchevent(abslistview.java:3506) @ android.view.view.dispatchtouchevent(view.java:7263) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2235) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1932) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2241) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1946) @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:1977) @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1427) @ android.app.activity.dispatchtouchevent(activity.java:2428) @ android.support.v7.internal.view.windowcallbackwrapper.dispatchtouchevent(windowcallbackwrapper.java:59) @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:1925) @ android.view.view.dispatchpointerevent(view.java:7443) @ android.view.viewrootimpl.deliverpointerevent(viewrootimpl.java:3603) @ android.view.viewrootimpl.deliverinputevent(viewrootimpl.java:3531) @ android.view.viewrootimpl.doprocessinputevents(viewrootimpl.java:4783) @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:4743) @ android.view.viewrootimpl$windowinputeventreceiver.oninputevent(viewrootimpl.java:4895) @ android.view.inputeventreceiver.dispatchinputevent(inputeventreceiver.java:179) @ android.view.inputeventreceiver.nativeconsumebatchedinputevents(native method) @ android.view.inputeventreceiver.consumebatchedinputevents(inputeventreceiver.java:171) @ android.view.viewrootimpl.doconsumebatchedinput(viewrootimpl.java:4863) @ android.view.viewrootimpl$consumebatchedinputrunnable.run(viewrootimpl.java:4917) @ android.view.choreographer$callbackrecord.run(choreographer.java:776) @ android.view.choreographer.docallbacks(choreographer.java:579) @ android.view.choreographer.doframe(choreographer.java:546) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:762) @ android.os.handler.handlecallback(handler.java:800) @ android.os.handler.dispatchmessage(handler.java:100) @ android.os.looper.loop(looper.java:194) @ android.app.activitythread.main(activitythread.java:5371) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:525) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:833) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:600) @ dalvik.system.nativestart.main(native method)
make sure have enough thumbnails in array. if crashes here:
thumbnails[position].compress(bitmap.compressformat.jpeg, 100, baos); //here error null pointer exception
that means thumbnails[position]
null
. make sure array not empty , has values each item position.
Comments
Post a Comment