java - Hide items in GridView if two items have same images using Android -


i developing project using gridview need hide items if user click such 2 items having same images both item should hide.
first time when project load have 1 question marks image on item. when user click item background image show if click item having same picture both item should hide if not, again show question marks image.
how possible?
here mainactivity.java

public class mainactivity extends activity {     context ctx;     int imagesarray[];     gridviewcontent adapter;     list<integer> pictures;     boolean flage=false;     int img1=-1,img2=-1;     public int originalarray[] = { r.drawable.sample_0, r.drawable.sample_1,             r.drawable.sample_2, r.drawable.sample_3,r.drawable.sample_0, r.drawable.sample_1,             r.drawable.sample_2, r.drawable.sample_3 };      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);         shufflearray();          adapter= new gridviewcontent(this);          final gridview grid = (gridview) findviewbyid(r.id.gv_memory);         grid.setadapter(new gridviewcontent(this));     }     private void shufflearray() {         // todo auto-generated method stub         pictures= new arraylist<integer>();         (int index = 0; index < originalarray.length; index++)         {             pictures.add(originalarray[index]);         }         collections.shuffle(pictures);      }     public class gridviewcontent extends baseadapter {         private context context;          //abstract change();          public int picturearray[]={                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 r.drawable.question,                 };         public gridviewcontent(context c){             context=c;          }          @override         public int getcount() {             // todo auto-generated method stub             return (picturearray.length);         }          @override         public object getitem(int position) {             // todo auto-generated method stub             return picturearray[position];         }          @override         public long getitemid(int position) {             // todo auto-generated method stub             return 0;         }          @override         public view getview(final int position, view convertview, viewgroup arg2) {             // todo auto-generated method stub             convertview=layoutinflater.from(context).inflate(r.layout.main, null);             final imageview myimage=new imageview(context);             myimage.setimageresource(picturearray[position]);             //myimage.setimageresource(pictures.get(picturearray[position]));             myimage.setscaletype(imageview.scaletype.center_inside);             myimage.setlayoutparams(new gridview.layoutparams(70, 70));             myimage.setonclicklistener(new onclicklistener() {                  @override                 public void onclick(view v) {                 //  int post1,post2;                      myimage.setimageresource(pictures.get(position));                  if(flage==false)                 {                  img1=pictures.get(position);                  flage=true;                  }else if(flage==true){                     //post2=position;                 img2=pictures.get(position);                 checkresult();                 //notifydatasetchanged();                 flage=false;                 }                 //else if(f)                 }             });              return myimage;         }      }     public void checkresult() {         if(img1==img2)         {             //pictures.remove(post2);              adapter.notifydatasetchanged();              toast.maketext(mainactivity.this, "congratualatin !!!!", toast.length_long).show();         }         else{             toast.maketext(mainactivity.this, "sorry!!!!", toast.length_long).show();             final gridview grid = (gridview) findviewbyid(r.id.gv_memory);             grid.setadapter(new gridviewcontent(this));         }      } } 

you try , remember index of gridview item clicked. when second click occurs, check remembered index. if populated (meaning user clicked on arbitrary image once), extract both drawables adapter , check if equal. if are, remove them adapter , update it. not forget reset remembered index.

in code, might this:

int firstclickindex = -1;  grid.setonitemclicklistener(new adapterview.onitemclicklistener() {     @override     public void onitemclick(adapterview <? > parent, view view, int position, long id) {         if (-1 == firstclickindex) {             firstclickindex = position;         } else {             final int fstdrawable = adapter.get(firstclickindex);             final int snddrawable = adapter.get(position);              if (fstdrawable == snddrawable) {                 // remove stuff, reset firstclickindex.             } else {                 // reset firstclickindex.             }          }     } }); 

Comments