Slide-Slip Removal Advanced (iv)

Source: Internet
Author: User
Tags gety

Recently in writing sliding delete, online code is to see the foggy, determined their own research, although the effect is not very good, but the idea is very clear, the code logic is very simple


First look at the main page layout

activity_main.xml--is a simple, custom listview

<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android"    xmlns:tools= "http// Schemas.android.com/tools "    android:layout_width=" match_parent "    android:layout_height=" Match_parent "    tools:context= "Com.example.slidelistview.MainActivity" >    < Com.example.slidelistview.SlideListView        android:id= "@+id/listview"        android:layout_width= "Fill_parent"        android:layout_height= "Fill_parent"/></relativelayout>

Take a look at the layout of each item--it's easy on the 2 TextView (I'm too lazy to use imageview, for fear of trouble)

Listview_item.xml

<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "http://schemas.android.com/apk/res/ Android "    android:layout_width=" match_parent "    android:layout_height=" 30DP "    android:orientation=" Horizontal ">    <textview        android:id=" @+id/textview "        android:gravity=" center "        android: Background= "#FFA07A"        android:layout_width= "fill_parent"        android:layout_height= "50DP"        android:text= "TextView"/>    <textview        android:id= "@+id/delete"         android:gravity= "center"        android: Background= "#FF3E96"        android:layout_width= "50DP"        android:layout_height= "50DP"        android:text= "Delete" /></linearlayout>

Mainactivity
Package Com.example.slidelistview;import Java.util.arraylist;import Android.app.activity;import android.os.Bundle; Import Android.view.menu;import Android.view.menuitem;import Android.view.view;import Android.view.view.onclicklistener;import Android.view.viewgroup;import Android.widget.adapterview;import Android.widget.adapterview.onitemclicklistener;import Android.widget.baseadapter;import Android.widget.TextView; public class Mainactivity extends Activity {private Slidelistview listview;private myadapter myadapter;private ArrayList <String> data = new arraylist<string> (), @Overrideprotected void OnCreate (Bundle savedinstancestate) { Super.oncreate (savedinstancestate); Setcontentview (r.layout.activity_main); myadapter = new MyAdapter (); for (int i = 0; I < 10; i++) {data.add ("A");} ListView = (Slidelistview) Findviewbyid (R.id.listview); Listview.setadapter (Myadapter);} Class Myadapter extends Baseadapter {@Overridepublic int getcount () {return data.size ();} @Overridepublic Object GEtitem (int position) {return data.get (position);} @Overridepublic long Getitemid (int position) {return position;} @Overridepublic View GetView (final int position, view Convertview,viewgroup parent) {Viewholder Viewholder = null;if (CONV Ertview = = null) {Viewholder = new Viewholder (); Convertview = View.inflate (Mainactivity.this,r.layout.listview_item, NULL); Viewholder.textview = (TextView) Convertview.findviewbyid (r.id.textview); Viewholder.deletextview = (TextView) Convertview.findviewbyid (R.id.delete); Convertview.settag (Viewholder);} else {Viewholder = (Viewholder) Convertview.gettag ();} ViewHolder.textView.setText (Data.get (position)); ViewHolder.deleTextView.setOnClickListener (New Onclicklistener ( {public void OnClick (View v) {data.remove (position); myadapter.notifydatasetchanged (); Listview.getchildat (position ). ScrollTo (0, 0);}); return Convertview;} Class Viewholder {private TextView textview;private TextView Deletextview;}}}

Slidelistview
Package Com.example.slidelistview;import Android.content.context;import Android.util.attributeset;import Android.view.motionevent;import Android.view.view;import Android.widget.listview;import Android.widget.Scroller; Import Android.widget.toast;public class Slidelistview extends ListView {private Scroller scroller;private int downx; private int downy;private int movex;private int movey;private int downposition;private int Upposition;private Boolean dele Open = false;private View slidelistitem;private int lastpos = -1;/** * Constructor */public Slidelistview (context context, Attribu Teset attrs, int defstyleattr) {Super (context, attrs, defstyleattr); init (context);} Public Slidelistview (context context, AttributeSet Attrs) {Super (context, attrs); init (context);} Public Slidelistview (Context context) {super (context); init (context);} private void init (context context) {scroller = new scroller (context);} @Overridepublic boolean ontouchevent (motionevent ev) {final int action = ev.getaction (); switch (action){Case MotionEvent.ACTION_DOWN:downX = (int) ev.getx ();d owny = (int) ev.gety ();//Get pressed entry index downposition = pointtoposition (Downx, DownY); Slidelistitem = Getchildat (downposition); if (slidelistitem! = null) {slidelistitem.scrollto (0, 0);} If the press is not the current itemif (lastpos! =-1) {if (Lastpos! = downposition) {View Childat = Getchildat (Lastpos); Childat.scrollto (0, 0);}} Lastpos = downposition;break;case MotionEvent.ACTION_MOVE:moveX = (int) ev.getx (); movey = (int) ev.gety (); int upposition = Pointtoposition (MoveX, Movey), if (downposition = = upposition) {//is the same entry if ((Downx-movex) >) {if (Slidelistitem ! = null) {slidelistitem.scrollto (100, 0);}}} Break;case Motionevent.action_up:break;default:break;} return super.ontouchevent (EV);}}

Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.

Slide-Slip Removal Advanced (iv)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.