android - I am getting a null pointer exception in my custom adapter getView() method -
java.lang.nullpointerexception: name null
@override public view getview(int position, view convertview, viewgroup parent) { holder holder; if (convertview == null) { holder = new holder(); layoutinflater vi = (layoutinflater) getcontext().getsystemservice(context.layout_inflater_service); convertview = vi.inflate(r.layout.history_item, parent, false); holder.tvcat = (textview)convertview.findviewbyid(r.id.tv_category); holder.tvamt = (textview)convertview.findviewbyid(r.id.tv_amount); holder.tvdate = (textview)convertview.findviewbyid(r.id.tv_date); holder.img = (imageview)convertview.findviewbyid(r.id.iv); convertview.settag(holder); } holder=(holder)convertview.gettag(); //holder holder = new holder(); //view rowview; historyitem historyitem; //rowview=inflater.inflate(r.layout.history_item,null); historyitem = historyitems.get(position); holder.tvcat.settext(historyitem.getcategory()); holder.tvamt.settext(historyitem.getamount()+""); dateformat df = new simpledateformat("yyyy/mm/dd kk:mm:ss"); calendar c = calendar.getinstance(); c.settimeinmillis(historyitem.gettimestamp()); date day = c.gettime(); holder.tvdate.settext(df.format(day)); resources res = context.getresources(); string mdrawablename = iconmapper.get(historyitem.getcategory()); //this line giving null pointer exception... int resid = res.getidentifier(mdrawablename , "drawable", context.getpackagename()); holder.img.setimageresource(resid); return convertview; } i checked mdrawablename , holds correct value.
also, context coming listview class.
appreciated.
logcat :
java.lang.nullpointerexception: name null @ android.content.res.resourcesimpl.getidentifier(resourcesimpl.java:214) @ android.content.res.resources.getidentifier(resources.java:1866) @ com.example.sharang.wheresmymoney.historycustomadapter.getview(historycustomadapter.java:92) @ com.baoyz.swipemenulistview.swipemenuadapter.getview(swipemenuadapter.java:49) @ android.widget.abslistview.obtainview(abslistview.java:2369) @ android.widget.listview.makeandaddview(listview.java:1970) @ android.widget.listview.filldown(listview.java:704) @ android.widget.listview.fillfromtop(listview.java:765) @ android.widget.listview.layoutchildren(listview.java:1744) @ android.widget.abslistview.onlayout(abslistview.java:2161) @ android.view.view.layout(view.java:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ 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:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ android.support.v7.widget.actionbaroverlaylayout.onlayout(actionbaroverlaylayout.java:433) @ android.view.view.layout(view.java:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ android.view.view.layout(view.java:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ 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:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ android.widget.framelayout.layoutchildren(framelayout.java:323) @ android.widget.framelayout.onlayout(framelayout.java:261) @ com.android.internal.policy.decorview.onlayout(decorview.java:724) @ android.view.view.layout(view.java:17526) @ android.view.viewgroup.layout(viewgroup.java:5612) @ android.view.viewrootimpl.performlayout(viewrootimpl.java:2342) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:2069) @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1246) @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:6307) @ android.view.choreographer$callbackrecord.run(choreographer.java:871) @ android.view.choreographer.docallbacks(choreographer.java:683) @ android.view.choreographer.doframe(choreographer.java:619) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:857) @ 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:6077) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:865) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:755)
you can replace context getcontext()
and make sure not use getapplicationcontext when create adapter
you'll have figure out why iconmapper doesn't contain historyitem category value
if fails, add null check around setting image resource
Comments
Post a Comment