android - returning incorrect position in getView method -


i using customgridadapter extends baseadapter display values of array in listview. in getview of customgridadapter position of array values not in flow.

public class customgridadapter extends baseadapter {      private context context;      private final string[] gridvalues;     private final string[] gridimage;      //constructor initialize values     public customgridadapter(context context, string[] gridvalues, string[] gridimage) {         this.context = context;         this.gridvalues = gridvalues;         this.gridimage=gridimage;     }      @override     public int getcount() {          // number of times getview method call depends upon gridvalues.length         return gridvalues.length;     }      @override     public object getitem(int position) {          return gridvalues[position];     }      @override     public long getitemid(int position) {          return 0;     }       // number of times getview method call depends upon gridvalues.length      public view getview(int position, view convertview, viewgroup parent) {          //layoutinflator call external grid_item.xml file          layoutinflater inflater = (layoutinflater) context                 .getsystemservice(context.layout_inflater_service);          view gridview;          if (convertview == null) {              gridview = new view(context);              // layout grid_item.xml             gridview = inflater.inflate(r.layout.grid_item, null);              // set value textview              textview textview = (textview) gridview.findviewbyid(r.id.grid_item_label);             textview.settext(gridvalues[position]);             log.i(new integer(position).tostring(),gridvalues[position] );             imageview grp_icon=(imageview)gridview.findviewbyid(r.id.grid_item_image);             bitmapfactory.options options = new bitmapfactory.options();             options.inpreferredconfig = bitmap.config.argb_8888;             string path="/sdcard/letsmeet/letsmeet_media/group_images/"+gridimage[position];             bitmap bitmap = bitmapfactory.decodefile(path, options);             grp_icon.setimagebitmap(bitmap);             // set image based on selected text              imageview imageview = (imageview) gridview                     .findviewbyid(r.id.grid_item_image);              string mobile = gridvalues[position];            } else {             gridview = (view) convertview;         }          return gridview;     } } 

in getview method of customgridadapter postion in order of 0,1,2,0,4 why getting 0 after 2 instead of 3?

@override public long getitemid(int position) {      return position; //return position here } 

make getview as,

public view getview(int position, view convertview, viewgroup parent) {      //layoutinflator call external grid_item.xml file      layoutinflater inflater = (layoutinflater) context             .getsystemservice(context.layout_inflater_service);      view gridview;      if (convertview == null) {          gridview = new view(context);          // layout grid_item.xml         gridview = inflater.inflate(r.layout.grid_item, null);          // set value textview          textview textview = (textview) gridview.findviewbyid(r.id.grid_item_label);         textview.settext(gridvalues[position]);         log.i(new integer(position).tostring(),gridvalues[position] );         imageview grp_icon=(imageview)gridview.findviewbyid(r.id.grid_item_image);                } else {         gridview = (view) convertview;     }          bitmapfactory.options options = new bitmapfactory.options();         options.inpreferredconfig = bitmap.config.argb_8888;         string path="/sdcard/letsmeet/letsmeet_media/group_images/"+gridimage[position];         bitmap bitmap = bitmapfactory.decodefile(path, options);         grp_icon.setimagebitmap(bitmap);         // set image based on selected text          imageview imageview = (imageview) gridview                 .findviewbyid(r.id.grid_item_image);          string mobile = gridvalues[position];      return gridview; } 

your converview null number of views shown on screen. once scroll them converview != null , recycled. move code outside it.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -