第一步引入library
二:布局:
<com.handmark.pulltorefresh.library.PullToRefreshListView三:android:layout_width="match_parent" android:layout_height="match_parent"android:id="@+id/pulltore" />
//得到ID pull = (PullToRefreshListView) findViewById(R.id.pulltore); ListView actualListView = pull .getRefreshableView();//转变为listview可不写 pull.setMode(PullToRefreshBase.Mode.BOTH);//设置让能能上拉刷新 arr.addAll(Arrays.asList(mStrings));//添加 adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arr);//适配器 pull.setAdapter(adapter);//绑定适配器 设置监听:pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new Myasync().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new Myasyncc().execute(); } });class Myasync 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); arr.addFirst("我是新添加的一"); adapter.notifyDataSetChanged(); pull.onRefreshComplete();//设置让他停止 } } class Myasyncc extends AsyncTask<Void,Void,String[]> { @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String s[]) { super.onPostExecute(s); arr.addLast("我是末尾一"); arr.addLast("我是末尾二"); adapter.notifyDataSetChanged(); pull.onRefreshComplete(); } }