Android GridView setItemChecked dynamically -
i have custom gridview
. when activity
starts, want set checked
item
dynamically. tried gridview.setitemchecked(5, true);
didn't work. how can do?
public class mainactivity extends activity { gridview gridview; arraylist<item> gridarray = new arraylist<item>(); customgridviewadapter customgridadapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //set grid view item bitmap homeicon = bitmapfactory.decoderesource(this.getresources(), r.drawable.home); bitmap usericon = bitmapfactory.decoderesource(this.getresources(), r.drawable.personal); gridarray.add(new item(homeicon,"home")); gridarray.add(new item(usericon,"user")); gridarray.add(new item(homeicon,"house")); gridarray.add(new item(usericon,"friend")); gridarray.add(new item(homeicon,"home")); gridarray.add(new item(usericon,"personal")); gridarray.add(new item(homeicon,"home")); gridarray.add(new item(usericon,"user")); gridarray.add(new item(homeicon,"building")); gridarray.add(new item(usericon,"user")); gridarray.add(new item(homeicon,"home")); gridarray.add(new item(usericon,"xyz")); gridview = (gridview) findviewbyid(r.id.gridview1); customgridadapter = new customgridviewadapter(this, r.layout.row_grid, gridarray); gridview.setadapter(customgridadapter); gridview.setitemchecked(5, true); }
adapter
public class customgridviewadapter extends arrayadapter<item> { context context; int layoutresourceid; arraylist<item> data = new arraylist<item>(); public customgridviewadapter(context context, int layoutresourceid, arraylist<item> data) { super(context, layoutresourceid, data); this.layoutresourceid = layoutresourceid; this.context = context; this.data = data; } @override public view getview(int position, view convertview, viewgroup parent) { view row = convertview; recordholder holder = null; if (row == null) { layoutinflater inflater = ((activity) context).getlayoutinflater(); row = inflater.inflate(layoutresourceid, parent, false); holder = new recordholder(); holder.txttitle = (textview) row.findviewbyid(r.id.item_text); holder.imageitem = (imageview) row.findviewbyid(r.id.item_image); row.settag(holder); } else { holder = (recordholder) row.gettag(); } item item = data.get(position); holder.txttitle.settext(item.gettitle()); holder.imageitem.setimagebitmap(item.getimage()); return row; } static class recordholder { textview txttitle; imageview imageitem; } }
item
public class item { bitmap image; string title; public item(bitmap image, string title) { super(); this.image = image; this.title = title; } public bitmap getimage() { return image; } public void setimage(bitmap image) { this.image = image; } public string gettitle() { return title; } public void settitle(string title) { this.title = title; } }
gridview
<gridview android:id="@+id/gridview1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:columnwidth="80dp" android:gravity="center" android:numcolumns="auto_fit" android:stretchmode="columnwidth" android:listselector="@drawable/selector_" android:choicemode="singlechoice"> </gridview>
gridview.setitemchecked(5, true);
works! if want verify, ask checked
item position using below api give correct value (in case 5).
int = gridview.getcheckeditemposition();
now, might interested in visual representation of checked item. have in getview(...) textview
, imageview
, , both implicitly not equipped check/uncheck feature. if plainly use widgets
such checkbox
implements
checkable interface, can see difference!
there nice post here implementation.
Comments
Post a Comment