You need to modify the ListView class override Onintercepttouchevent () and ontouchevent ()//experiment with another method, overwriting the ontouchevent () of the drag icon in each row of the ListView, but the effect is not ideal. public class Mainactivity extends Activity {deleteadapter Deleteadapter;draglistview listview;boolean bflag;i Magebutton button; @Overridepublic void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (r.layout.activity_main);d eleteadapter = new Deleteadapter (this, getData ()); ListView = (Draglistview) Findviewbyid (R.id.listview1); Listview.setadapter (deleteadapter); button = (ImageButton) Findviewbyid ( R.id.imagebutton1) Bflag = False;button.setonclicklistener (new Onclicklistener () {@Overridepublic void OnClick (View ARG0) {//TODO auto-generated method stubif (!bflag) {deleteadapter.imgvisibility = true;button.setpressed (true); BFlag = True;deleteadapter.notifydatasetchanged (); Listview.setselector (Android. r.color.transparent);} else {deleteadapter.imgvisibility = false;deleteadapter.imgvisible = new Boolean[deleteadapter.getcount ()]; Button.setpresseD (false); bflag = False;deleteadapter.notifydatasetchanged (); Listview.setselector (Android. R.drawable.list_selector_background);}}); Listview.setonitemclicklistener (New Onitemclicklistener () {@Overridepublic void Onitemclick (adapterview<?> arg0, View arg1, int arg2,long arg3) {//TODO auto-generated method stubif (bflag) {if (deleteadapter.imgdvisible) {Delete adapter.imgdvisible = false;deleteadapter.imgvisible = new Boolean[deleteadapter.getcount ()]; Deleteadapter.notifydatasetchanged ();}}});} Private listAndroid Imitation iphone ListView Drag Sort button linkage Delete Show hidden