android - How to call onItemSelected programaticly? -
after made call of notifydatasetchanged, references onitemselected outofdate.
e.g
gallery.setonitemselectedlistener(new onitemselectedlistener() {             @override             public void onitemselected(adapterview<?> parent, view view,                     int position, long id) {                 onfront1 = (imageview) view;              }              @override             public void onnothingselected(adapterview<?> arg0) {                 // todo auto-generated method stub              }         });   getview
public view getview(final int position, view convertview,                 viewgroup parent) {               imview = new imageview(this.mycontext);              imview.setlayoutparams(new gallery.layoutparams(                     layoutparams.fill_parent, layoutparams.fill_parent));             imview.setontouchlistener(new ontouchlistener() {                    public boolean ontouch(view v, motionevent event) {                      imageview view = (imageview) v;                       onfront2 = view;                     return true; // indicate event handled                 }                });             onfront3 = imview;             return imview;         }   rotate
public void rotates(view v) {         imageview iv = onfront;         bitmap b = ((bitmapdrawable) iv.getdrawable()).getbitmap();         matrix matrix = new matrix();         matrix.postrotate(geg);         bitmap bmaprotate = bitmap.createbitmap(b, 0, 0, b.getwidth(),                 b.getheight(), matrix, true);         iv.setimagebitmap(bmaprotate);         geg = 90;         log.d("rorate", "yes");      }   onfront references old imageview, cannot use more. how can call onitemselected again?
a bit more detailed:
i taking imageview , use in rotates function. uses onfront replace global variables onfront1|onfront2|onfront3
 onfron1 allows rotate image appears on screen, became useless after notifydatasetchanged.
 onfront2  not affected notifydatasetchanged, works after screen taped ( prety logical)
 onfront3 not work @ all.
 want achieve - hold reference current imageview , update imageview updated.
it better reassign onfront @ same code block, call notifydatasetchanged.
if somehow cannot in scenario, need additional mechanism track payload inside listadapter.
for example, want mark selected items specific color. can introduce itemdata class:
public class itemdata{     public bool isselected;     // other data if need, maybe link image view }   you listadapter should use list of these objects (listdata) , implement getitem() method:
public object getitem(int i) {     return this.listdata.get(i); }   when select item - in listener call
((itemdata)parent.getitem(position)).isselected = true;   then, if add new item above selected, should add new item inside listdata. position of selected item change, associated itemdata instance not.
Comments
Post a Comment