android - Dynamic show the Delete Button in listview on select option -


i have designed list view has 1 imageview, textview, , button. imageview , textview visible on clicking imageview delete button visible selected view problem while selecting next list option need hide button need show 1 button @ time. can me please?

public class historymenu extends mainactivity {  public final static string item_title = "title";   public final static string item_caption = "caption";  public static boolean deletedispflag=false; public static view selectdelete=null; string optionselectedvalue; arraylist<string> liststring; arrayadapter<string> aa; listview settingssublist; layoutinflater linf; //  public string[] stringlist={"n @ 17.3 mph (16-18)","10:25, 20 june 2013","n @ 17.3 mph (16-18)","10:25, 20 june 2013","n @ 17.3 mph (16-18)","10:25, 20 june 2013","n @ 17.3 mph (16-18)","10:25, 20 june 2013"}; //  historylistadapters historylistadapter;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_history_menu);     settingssublist = (listview) findviewbyid(r.id.settings_sub_list);      layoutparams layout = new layoutparams(gravity.center);     layoutinflater inflator = (layoutinflater)this.getsystemservice(context.layout_inflater_service);      view v = inflator.inflate(r.layout.centered_menu_title, null);      ((textview)v.findviewbyid(r.id.title)).settextcolor(getresources().getcolor(r.color.white));     this.getsupportactionbar().setcustomview(v,layout);      liststring=new arraylist<string>();     liststring.add("history object 1");     liststring.add("history object 2");     liststring.add("history object 3");     liststring.add("history object 4");     liststring.add("history object 5");       myarrayadapter adapter = new myarrayadapter(this, r.layout.history_option_selector, liststring);      settingssublist.setadapter(adapter);     settingssublist.setonitemclicklistener(new onitemclicklistener() {          @override         public void onitemclick(adapterview<?> parent, view arg1, int position,                 long arg3) {          }     });  }       public class myarrayadapter extends arrayadapter<string> {                int previousdegrees = 0;        int degrees = 90;        rotateanimation animation = new rotateanimation(0f, 90f, animation.relative_to_self, 0.5f, animation.relative_to_self, 0.5f); //, 200, 200); // canvas.getwidth() / 2, canvas.getheight() / 2);             context context;        int layoutresourceid;        arraylist<string> historyitems = new arraylist<string>();          public myarrayadapter(context context, int layoutresourceid,arraylist<string> historyitems)         {             super(context, layoutresourceid, historyitems);             this.layoutresourceid = layoutresourceid;             this.context = context;             this.historyitems = historyitems;        }        @override        public view getview(int position, view convertview, viewgroup parent)         {            animation.setduration(1000l);               view item = convertview;                         if (item == null) {                     layoutinflater inflater = ((activity) context).getlayoutinflater();                     item = inflater.inflate(layoutresourceid, parent, false);             }                 textview items = (textview) item.findviewbyid(r.id.history_list_option_text);             final imageview select_option = (imageview) item.findviewbyid(r.id.history_list_option_select_image);             final button delete = (button) item.findviewbyid(r.id.history_list_option_delete_button);             delete.setvisibility(view.invisible);                            string itemtext = historyitems.get(position);                            items.settext(itemtext);              select_option.setonclicklistener(new onclicklistener() {                    @override                    public void onclick(view v) {                       select_option.startanimation(animation);                       if(deletedispflag == false)                       {                           delete.setvisibility(v.visible);                                                   selectdelete = v;                           deletedispflag=true;                       }                       else if(deletedispflag==true)                       {                                               delete.setvisibility(selectdelete.invisible);                            deletedispflag=false;                       }                        toast.maketext(context, "edit", toast.length_long).show();                    }             });               delete.setonclicklistener(new onclicklistener() {                 @override                 public void onclick(view v) {                      toast.maketext(context, "delete", toast.length_long).show();                 }             });          return item;      }       }  @override     public void onbackpressed() {         // todo auto-generated method stub         intent intent = new intent(this, mainactivity.class);                    intent.addflags(intent.flag_activity_clear_top);                     startactivity(intent);         overridependingtransition(r.drawable.activity_in_left_to_right_animation,r.drawable.activity_out_right_to_left_animation);       }   } 

you can achieve storing reference clicked button

private button prevdelete; 

and change click listener below:

select_option.setonclicklistener(new onclicklistener() {     @override     public void onclick(view v) {      if(prevdelete!=null){         prevdelete.setvisibility(view.invisible);      }       delete.setvisibility(view.visible);      prevdelete = delete;      select_option.startanimation(animation);      selectdelete = v;       toast.maketext(context, "edit", toast.length_long).show();      } }); 

Comments