导入所需PullToRefreshlibrary包
布局文件
<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.androidshangxiala.MainActivity"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:divider="#19000000" android:dividerHeight="4dp" android:fadingEdge="none" android:fastScrollEnabled="false" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:smoothScrollbar="true" /> </RelativeLayout>代码文件
import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private PullToRefreshListView pullToRefreshListView; private List<String> list; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); //默认可以下拉, 设置BOTH后也可以上啦; pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); initData(); myAdapter = new MyAdapter(); pullToRefreshListView.setAdapter(myAdapter); pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉加载 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { handler.postDelayed(new Runnable() { @Override public void run() { list.add(0,"网吧"); myAdapter.notifyDataSetChanged(); pullToRefreshListView.onRefreshComplete(); } },2000); } //上拉刷新 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { handler.postDelayed(new Runnable() { @Override public void run() { list.add("您好,范冰冰"); pullToRefreshListView.onRefreshComplete(); } },2000); myAdapter.notifyDataSetChanged(); } }); } //初始化组件 private void initData() { list = new ArrayList<>(); for (int i = 0; i < 15; i++) { list.add("杨栓"+i); } } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = new TextView(MainActivity.this); textView.setText(list.get(position)); textView.setTextSize(25); return textView; } } }