java - Unable to find TextView when populating ListView with ArrayAdapter -
i'm getting nullpointer exception @ following line, if textview i'm referring cannot found:
descriptor.settext("single");
i checked id field , same in code , in xml, i'm not sure if have error somewhere else in adapter.
logcat
06-02 23:24:08.903 11160-11160/com.example.albert.betterapp e/androidruntime﹕ fatal exception: main process: com.example.albert.betterapp, pid: 11160 java.lang.nullpointerexception @ com.example.albert.betterapp.displayallbets$mylistadapter.getview(displayallbets.java:464) @ android.widget.abslistview.obtainview(abslistview.java:2733) @ android.widget.listview.measureheightofchildren(listview.java:1274) @ android.widget.listview.onmeasure(listview.java:1186) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1410) @ android.widget.linearlayout.measurevertical(linearlayout.java:695) @ android.widget.linearlayout.onmeasure(linearlayout.java:588) @ android.view.view.measure(view.java:17396) @ android.widget.relativelayout.measurechildhorizontal(relativelayout.java:719) @ android.widget.relativelayout.onmeasure(relativelayout.java:455) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.widget.framelayout.onmeasure(framelayout.java:310) @ android.support.v7.internal.widget.contentframelayout.onmeasure(contentframelayout.java:124) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.support.v7.internal.widget.actionbaroverlaylayout.onmeasure(actionbaroverlaylayout.java:444) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.widget.framelayout.onmeasure(framelayout.java:310) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1410) @ android.widget.linearlayout.measurevertical(linearlayout.java:695) @ android.widget.linearlayout.onmeasure(linearlayout.java:588) @ android.view.view.measure(view.java:17396) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5365) @ android.widget.framelayout.onmeasure(framelayout.java:310) @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2505) @ android.view.view.measure(view.java:17396) @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:2175) @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1316) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1513) @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1200) @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:6401) @ android.view.choreographer$callbackrecord.run(choreographer.java:803) @ android.view.choreographer.docallbacks(choreographer.java:603) @ android.view.choreographer.doframe(choreographer.java:573) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:789) @ android.os.handler.handlecallback(handler.java:733) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:157) @ android.app.activitythread.main(activitythread.java:5335) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:515) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1081) @ dalvik.system.nativestart.main(native method)
adapter
private class mylistadapter extends arrayadapter<betdisplayer> { public mylistadapter() { super(displayallbets.this,r.layout.activity_singletotalbet,listwriter); } @override public view getview(int position,view convertview, viewgroup parent) { view itemview = convertview; if (itemview == null) { itemview = getlayoutinflater().inflate(r.layout.activity_singletotalbet,parent,false); } betdisplayer currentwriter = listwriter.get(position); log.d("testing", currentwriter.getselections()); log.d("testing2", currentwriter.getselections()); string selections = currentwriter.getselections(); int numberofselections = 0; for( int i=0; i<selections.length(); i++ ) { if( selections.charat(i) == '/' ) { numberofselections++; } } if (numberofselections == 1) { textview descriptor = (textview) findviewbyid(r.id.no); descriptor.settext("single"); } else if (numberofselections == 2) { textview descriptor = (textview) findviewbyid(r.id.no); descriptor.settext("double"); } else if (numberofselections == 3) { textview descriptor = (textview) findviewbyid(r.id.no); descriptor.settext("treble"); } else { textview descriptor = (textview) findviewbyid(r.id.no); descriptor.settext("accumulator" + "(" + numberofselections + ")"); } textview status = (textview) itemview.findviewbyid(r.id.status); status.settext(currentwriter.getstatus()); return itemview; } } private void populatelist() { arrayadapter<betdisplayer> adapter = new mylistadapter(); final listview list = (listview) findviewbyid(r.id.betslistviews); list.setadapter(adapter); } }
because, textview descriptor
part of itemview
(from r.layout.activity_singletotalbet
) access using reference of itemview
like,
textview descriptor = (textview) itemview.findviewbyid(r.id.no);
Comments
Post a Comment