目标人群:没有基础的安卓初学者 
知识点:在Android Studio中使用support V4包来实现下拉刷新的效果 
目标:在页面上实现下拉刷新功能
support V4包的导入
SwipeRefreshLayout类的简单使用
1.首先我们需要在build.gradle中添加对support V4包的引用,代码如下
dependencies {
    ...
    compile ‘com.android.support:support-v4:21.0.3‘
    ...
}
2.创建一个Activity页面并使其实现android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener接口,代码如下
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public void onRefresh() {
        //当处于刷新状态时需要执行的加载数据代码,此处略
    }
}
3.创建一个包含SwipeRefreshLayout控件的布局,代码如下
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_refresh_widget"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/content" />
</android.support.v4.widget.SwipeRefreshLayout>
SwipeRefreshLayout 通常作为布局中的根控件存在,但是并非是必须的
为了避免使用过程中出现异常, SwipeRefreshLayout 内部应当有子控件存在
4.回到Activity中,对SwipeRefreshLayout 进行初始化,并模拟下拉刷新的过程,代码如下:
    private SwipeRefreshLayout refreshLayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //下拉刷新控件
        refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_widget);
        //刷新过程中的颜色展示
        refreshLayout.setColorSchemeResources(R.color.red, R.color.blue, R.color.green,
                R.color.yellow);
        //指定接听回调接口
        refreshLayout.setOnRefreshListener(this);
        //文字显示控件
    }
    @Override
    public void onRefresh() {
        //延迟2000毫秒,模拟数据加载
        new Handler().postDelayed(new Runnable() {
            public void run() {
                refreshLayout.setRefreshing(false);
                Toast.makeText(MainActivity.this, "加载完成", Toast.LENGTH_LONG).show();
            }
        }, 2000);
    }
原文:http://blog.csdn.net/duanymin/article/details/44560783