下拉刷新效果实现图:
下拉刷新代码实现,xml部分代码:
java部分代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ptrlv_reflsh" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout>
package com.example.kongjian_06; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2017/6/11. */ public class PullToRefresh extends AppCompatActivity { private PullToRefreshListView ptrlv; private List<String> list; private ArrayAdapter aa; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pulltorefresh); ptrlv = (PullToRefreshListView) findViewById(R.id.ptrlv_reflsh);//获取PullToRefreshListView list = new ArrayList<>();//new一个集合 for (int i = 0; i <10 ; i++) { list.add("haha"+i);//将数据填入集合中 } aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list);//new一个适配器 ptrlv.setAdapter(aa);//给ptrlv设置适配器 ptrlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new MyTask().execute();//newMyTask并执行 } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { } }); } class MyTask extends AsyncTask{ @Override protected Object doInBackground(Object[] params) { for (int i = 0; i <3 ; i++) { list.add(0,"huohuo"+i);//将数据添加到数据最前面 } return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); ptrlv.onRefreshComplete(); aa.notifyDataSetChanged();//通知适配器发生改变 } } }