Small partners in Taobao or a variety of apps, you can see such a function, drop refresh and load more as well as slide delete, refresh, after brushing to make it new, analogy to break the old and create new, such as on the mobile phone to browse the news, use the Drop-down refresh function, we can first time to grasp the latest news, Loading more is what NIE, in simple terms is on the Web page taobao, we can click on the next page to meet more of our needs, but in the phone end is not the same, there is no page, how to do nie, the method is always more than difficult, attentive little partner may find, in the mobile phone end, There are loads more to meet our requirements, in fact, loading more is also a reflection of pagination. Small partners in the use of mobile phone version of QQ, the message interface will have a lot of information, if you are like a small series of obsessive-compulsive disorder, want to read the message to delete, how to do nie,qq to the right to slide the deletion of the function, recently in the small series of the project, on the face of such a function Drop-down refresh and load more as well as sliding delete, After a few days of tinkering, when the second ray of Winter sun shines on the small series, small knitting finally put her out, today this blog, small knitting Main and small partners share Drop-down refresh and load more sliding delete, hope to help to have the need of small partners, but also ask the small partners a lot of advice.
First we need to write the contents of XML, we named Activity_item, the specific code is as follows:
xml/html Code
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:id= "@+id/ll_parent"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:background= "@ Android:color/darker_gray "
android:orientation=" vertical ">
<textview
android:id=" @+id/tv_ Text "
android:layout_width=" match_parent "
android:layout_height=" match_parent "
android:gravity=" Center "
android:textsize=" 25sp "/>
</LinearLayout>
Next, we'll write code in List_item about XML, as shown in the following code:
xml/html Code
<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http:// Schemas.android.com/tools "android:id=" @+id/ll_parent "android:layout_width=" Match_parent "android:layout_height=" "Match_parent" android:gravity= "center" android:background= "@android: Color/darker_gray" tools:context= ".
Mainactivity "> <textview android:id=" @+id/list_item_textview "android:layout_width=" Wrap_content " android:layout_height= "Wrap_content" android:layout_centervertical= "true" android:textcolor= "#000" Andro Id:textsize= "16sp"/> <framelayout android:layout_width= "wrap_content" android:layout_height= "Match_p" Arent "android:layout_centervertical=" true "android:layout_alignparentright=" true "android:padding=" 15DP "&
Gt
<textview android:id= "@+id/tv_functions" android:layout_width= "90DP" android:layout_height= "50DP"
android:layout_gravity= "Center" android:background= "@drawable/btn_del_bg" android:gravity= "center" android:textcolor= "@android: Color/whi TE "android:text=" deletes "/> <textview android:id=" @+id/tv_coating "android:layout_width=" 9 0DP "android:layout_height=" 50DP "android:background=" @android: Color/darker_gray "Android:layout_grav
ity= "center" android:visibility= "Gone"/> </FrameLayout> </RelativeLayout>
In the third step, we'll write the XML file in main, as shown in the following code:
xml/html Code
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:layout_width= "Fill_ Parent "
android:layout_height=" fill_parent "
android:background=" #f0f0f0 "
android:orientation=" Vertical ">
<textview
android:layout_width=" fill_parent "android:layout_height=" Wrap_content "
android:text= "@string/hello"/>
<me.maxwin.view.xlistview
android:id= "@+id/xlistview
" Android:layout_width= "Fill_parent"
android:layout_height= "fill_parent"
android:cachecolorhint= "# 00000000 ">
</me.maxwin.view.XListView>
</LinearLayout>
The fourth step is to write the XML file inside the Xlistview_footer, as shown in the following code:
xml/html Code
<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android" Android : layout_width= "fill_parent" android:layout_height= "wrap_content" > <relativelayout android:id= "@+id/xli" Stview_footer_content "android:layout_width=" fill_parent "android:layout_height=" Wrap_content "Android:padd" ing= "10DP" > <progressbar android:id= "@+id/xlistview_footer_progressbar" android:layout_width= " Wrap_content "android:layout_height=" Wrap_content "android:layout_centerinparent=" true "Android:visib ility= "Invisible"/> <textview android:id= "@+id/xlistview_footer_hint_textview" Android:layout_ Width= "Wrap_content" android:layout_height= "Wrap_content" android:layout_centerinparent= "true" Androi d:text= "@string/xlistview_footer_hint_normal"/> </RelativeLayout> </LinearLayout>
The fifth step is to write the XML file inside the Xlistview_header, as shown in the following code:
xml/html Code
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "Fill_parent" android:layout_height= "Wrap_content" android:gravity= "Bottom" > <relativelayout android:id= "@+id/xlistv"
Iew_header_content "android:layout_width=" fill_parent "android:layout_height=" 60DP "> <linearlayout Android:layout_width= "Wrap_content" android:layout_height= "Wrap_content" Android:layout_centerinpare Nt= "true" android:gravity= "center" android:orientation= "vertical" android:id= "@+id/xlistview_header_text"
;
<textview android:id= "@+id/xlistview_header_hint_textview" android:layout_width= "Wrap_content" android:layout_height= "Wrap_content" android:text= "@string/xlistview_header_hint_normal"/> <Li Nearlayout android:layout_width= "wrap_content" android:layout_height= "Wrap_content" Android:lay Out_margintop= "3dP "> <textview android:layout_width=" wrap_content "android:layout_height=" Wrap_cont Ent "android:text=" @string/xlistview_header_last_time "android:textsize=" 12SP "/> < TextView android:id= "@+id/xlistview_header_time" android:layout_width= "Wrap_content" Andr oid:layout_height= "Wrap_content" android:textsize= "12sp"/> </LinearLayout> </linearlay
out> <imageview android:id= "@+id/xlistview_header_arrow" android:layout_width= "Wrap_content" android:layout_height= "Wrap_content" android:layout_alignleft= "@id/xlistview_header_text" android:layou
T_centervertical= "true" android:layout_marginleft= " -35DP" android:src= "@drawable/xlistview_arrow"/> <progressbar android:id= "@+id/xlistview_header_progressbar" android:layout_width= "30DP" Android
: layout_height= "30DP" android:layout_alignleft= "@id/xlistview_header_text" android:layout_centervertical= "true" android:layou
t_marginleft= " -40DP" android:visibility= "invisible"/> </RelativeLayout> </LinearLayout>
So far, the code for our layout XML file has been written, and then we start writing the code inside the Java class, and first, we'll write the code inside the Itemactivity, as shown in the following code:
Java code
Import android.app.Activity;
Import Android.os.Bundle;
Import android.view.MotionEvent;
Import Android.view.View;
Import Android.view.View.OnTouchListener;
Import Android.widget.TextView;
public class Itemactivity extends activity implements Ontouchlistener {private float x, UPX;
protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_item);
Init ();
private void Init () {Findviewbyid (r.id.ll_parent). Setontouchlistener (this);
((TextView) Findviewbyid (R.id.tv_text)). SetText (Getintent (). Getstringextra ("item"));
public boolean Ontouch (View V, motionevent event) {if (event.getaction () = = Motionevent.action_down) {
x = Event.getx ();
} if (event.getaction () = = motionevent.action_up) {UPX = Event.getx ();
if (Math.Abs (X-UPX) >) {this.finish ();
Overridependingtransition (0, r.anim.slide_out_to_right); } return true;
}
}
Next, we'll write the code inside the adapter adapter, as shown in the following code:
Java code
Import java.util.ArrayList;
Import Android.content.Context;
Import Android.view.LayoutInflater;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.BaseAdapter;
Import Android.widget.TextView;
public class Itemadapter extends Baseadapter {private Layoutinflater inflater;
Private arraylist<string> datas;
Public Itemadapter {inflater = Layoutinflater.from (context);
public void SetData (arraylist<string> datas) {this.datas = datas;
public int GetCount () {return datas.size ();
Public Object getitem (int position) {return datas.get (position);
public long getitemid (int position) {return position;
Public View GetView (final int position, View Convertview, ViewGroup parent) {Viewholder holder = null;
if (Convertview = = null) {holder = new Viewholder ();
Convertview = inflater.inflate (R.layout.list_item, NULL); holder.coating = (TextView) Convertview.findviewbyid (r.id.tv_coating);
Holder.functions = (TextView) Convertview.findviewbyid (r.id.tv_functions);
holder.list_item_textview= (TextView) Convertview.findviewbyid (R.id.list_item_textview);
Convertview.settag (holder);
else {holder = (Viewholder) convertview.gettag ();
} holder.list_item_textview.setText (Datas.get (position));
Holder.coating.setVisibility (view.visible);
Holder.functions.setClickable (FALSE);
return convertview;
Public final class Viewholder {public TextView coating;
public TextView functions;
Public TextView List_item_textview;
}
}
Finally, we'll write the code inside the Xlistviewactivity, as shown in the following code:
Java code
Import java.util.ArrayList;
Import Me.maxwin.view.XListView;
Import Me.maxwin.view.XListView.IXListViewListener;
Import Me.maxwin.view.XListView.RemoveListener;
Import android.app.Activity;
Import Android.content.Context;
Import android.content.Intent;
Import Android.os.Bundle;
Import Android.os.Handler;
Import Android.view.View;
Import Android.widget.AdapterView;
Import Android.widget.AdapterView.OnItemClickListener; public class Xlistviewactivity extends activity implements Ixlistviewlistener, removelistener,onitemclicklistener{pri
Vate Xlistview Mlistview;
Private arrayadapter<string> Madapter;
Private Itemadapter adapter;
private context;
Private arraylist<string> items = new arraylist<string> ();
Private Handler Mhandler;
private int start = 0;
private static int refreshcnt = 0; /** called the activity is a. */@Override public void OnCreate (Bundle savedinstancestate) {super.oncreatE (savedinstancestate);
Setcontentview (R.layout.main);
Geneitems ();
Init ();
Mhandler = new Handler (); } private void Init () {//TODO auto-generated method Stub mlistview = (Xlistview) Findviewbyid (r.id.xlis
Tview);
Mlistview.setpullloadenable (TRUE);
Mlistview.setremovelistener (this);
Mlistview.setonitemclicklistener (this);
Mlistview.setpullloadenable (FALSE);
Mlistview.setpullrefreshenable (FALSE);
Mlistview.setxlistviewlistener (this);
Adapter=new Itemadapter (this);
Adapter.setdata (items);
Mlistview.setadapter (adapter);
private void Geneitems () {for (int i = 0; I!= ++i) {items.add ("Refresh cnt" + (++start));
}} private void OnLoad () {Mlistview.stoprefresh ();
Mlistview.stoploadmore ();
Mlistview.setrefreshtime ("just");
@Override public void Onrefresh () {mhandler.postdelayed (new Runnable () {@Override public void Run () {start = ++refreshcnt;
Items.clear ();
Geneitems ();
Madapter.notifydatasetchanged ();
Adapter=new Itemadapter (xlistviewactivity.this);
Adapter.setdata (items);
Mlistview.setadapter (adapter);
OnLoad ();
}, 2000); @Override public void Onloadmore () {mhandler.postdelayed (new Runnable () {@Override public V
OID Run () {geneitems ();
Adapter.notifydatasetchanged ();
OnLoad ();
}, 2000); @Override public void RemoveItem (int position) {//TODO auto-generated method stub mlistview.isslid
E = false;
MListView.itemView.findViewById (r.id.tv_coating). setvisibility (view.visible);
Items.remove (position);
Adapter.notifydatasetchanged ();
@Override public void Onitemclick (adapterview<?> parent, view view, int position, long ID) { TODO auto-generatedMethod stub Intent Intent = new Intent (Getapplicationcontext (), itemactivity.class);
Intent.putextra ("Item", Items.get (position));
StartActivity (Intent);
Overridependingtransition (R.anim.slide_in_from_right, r.anim.remain_original_location);
}
}
At this point, the above is the Android implementation Drop-down refresh and load and sliding delete knowledge collation, thank you for your support!