android - Using an adapter in a fragment -


i trying use gridview in fragment , using adapter populate buttons. code is:

inside mainactivity:

public static class miscfragment extends fragment {      public static final string arg_section_number = "section_number";      public miscfragment() {     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {         view rootview = inflater.inflate(r.layout.misc_fragment,                 container, false);          gridview gridview = (gridview) rootview.findviewbyid(r.id.gridview);         gridview.setadapter(new miscadapter(this.getactivity()));         return rootview;     } } 

my adapter class:

public class miscadapter extends baseadapter {  private context mcontext;  public miscadapter(context c){     mcontext = c; }  @override public int getcount() {      return mbuttons.length; }  @override public object getitem(int position) {      return null; }  @override public long getitemid(int position) {      return position; }  @override public view getview(int position, view convertview, viewgroup parent) {     button mybutton;       if(convertview == null){         mybutton = new button(mcontext);         mybutton.setlayoutparams(new gridview.layoutparams(100,55));         mybutton.setpadding(8,8,8,8);     }     else{         mybutton = (button) convertview;     }      mybutton.settext(mbuttons[position]);     mybutton.setid(position);     return null; }  private string[] mbuttons = {         "button1", "button2", "button3", "button4",         "button5", "button6", "button7", "button8",         "button9", "button10"  };  } 

i believe error at: gridview.setadapter(new miscadapter(this.getactivity()));

i think need pass context in there i'm not sure if how supposed or if fragments use context. right throwing null pointer exception.

stack trace:

05-09 18:29:19.541: e/androidruntime(525): fatal exception: main 05-09 18:29:19.541: e/androidruntime(525): java.lang.nullpointerexception 05-09 18:29:19.541: e/androidruntime(525):  @         android.widget.gridview.onmeasure(gridview.java:1028) 05-09 18:29:19.541: e/androidruntime(525):  @  android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4698) 05-09 18:29:19.541: e/androidruntime(525):  @ android.widget.framelayout.onmeasure(framelayout.java:293) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @   android.support.v4.view.viewpager.onmeasure(viewpager.java:1389) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4698) 05-09 18:29:19.541: e/androidruntime(525):  @ android.widget.framelayout.onmeasure(framelayout.java:293) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @ android.widget.linearlayout.measurevertical(linearlayout.java:812) 05-09 18:29:19.541: e/androidruntime(525):  @ android.widget.linearlayout.onmeasure(linearlayout.java:553) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4698) 05-09 18:29:19.541: e/androidruntime(525):  @ android.widget.framelayout.onmeasure(framelayout.java:293) 05-09 18:29:19.541: e/androidruntime(525):  @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2092) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.view.measure(view.java:12723) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1064) 05-09 18:29:19.541: e/androidruntime(525):  @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2442) 05-09 18:29:19.541: e/androidruntime(525):  @ android.os.handler.dispatchmessage(handler.java:99) 05-09 18:29:19.541: e/androidruntime(525):  @ android.os.looper.loop(looper.java:137) 05-09 18:29:19.541: e/androidruntime(525):  @ android.app.activitythread.main(activitythread.java:4424) 05-09 18:29:19.541: e/androidruntime(525):  @ java.lang.reflect.method.invokenative(native method) 05-09 18:29:19.541: e/androidruntime(525):  @ java.lang.reflect.method.invoke(method.java:511) 05-09 18:29:19.541: e/androidruntime(525):  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 05-09 18:29:19.541: e/androidruntime(525):  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 05-09 18:29:19.541: e/androidruntime(525):  @ dalvik.system.nativestart.main(native method) 

currently not assigning created view convertview if convertview null .change getview method as:

@override public view getview(int position, view convertview, viewgroup parent) {     button mybutton;       if(convertview == null){         mybutton = new button(mcontext);         mybutton.setlayoutparams(new gridview.layoutparams(100,55));         mybutton.setpadding(8,8,8,8);          convertview=mybutton;  //>>> assign mybutton convertview     }     else{         mybutton = (button) convertview;     }      ....     return convertview; /// return view here } 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -