需要加载的依赖:
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
布局 :
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwei.ssp.day1007.MainActivity"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="368dp" android:layout_height="495dp" android:id="@+id/plv" tools:layout_editor_absoluteY="8dp" tools:layout_editor_absoluteX="8dp" /> </android.support.constraint.ConstraintLayout>
主类:
package com.bwei.ssp.day1007; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class MainActivity extends AppCompatActivity { private PullToRefreshListView plv; private List<String> list; private LinkedList<String> plist; private ArrayAdapter<String> madapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plv = (PullToRefreshListView) findViewById(R.id.plv); list = new ArrayList<>(); list.add("李志ss"); list.add("李志bb"); list.add("李志ss"); list.add("李志bb"); plv.setMode(PullToRefreshBase.Mode.BOTH); plist = new LinkedList<>(); plist.addAll(list); madapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, plist); plv.setAdapter(madapter); plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { new MAsyzTask1().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { new MAsyzTask().execute(); } }); } private class MAsyzTask extends AsyncTask<Void,Void,String[]>{ @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String[] s) { super.onPostExecute(s); plist.addLast("王庆sb"); madapter.notifyDataSetChanged(); plv.onRefreshComplete(); } } private class MAsyzTask1 extends AsyncTask<Void,Void,String[]>{ @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String[] s) { super.onPostExecute(s); plist.addFirst("王庆sb"); madapter.notifyDataSetChanged(); plv.onRefreshComplete(); } } }