Android 下拉刷新控件Android-PullToRefresh

需要用到一个开源库 Android-PullToRefresh

https://github.com/chrisbanes/Android-PullToRefresh

 ------------------------------------------------------------

 工程代码:

        开源库:  LearnPullToRefreshControls.zip

        使用Demo:  UsingLsitViewRefresh.zip

------------------------------------------------------------

开源库结构:

三个库:

    library

    PullToRefreshListFragment

    PullToRefreshViewPager

官方Demo:

    LauncherActivity

------------------------------------------------------------

 Android-PullToRefresh支持多种控件

 

 ------------------------------------------------------------

举个使用ListView的例子:

 

先定义layout

<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:id="@+id/refreshLv"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

在Java中使用PullToRefreshListView

PullToRefreshListView lv;
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    List<String> arr = new ArrayList<String>();
    arr.add("android");
    arr.add("javaee");
    arr.add("python");

    lv = (PullToRefreshListView) findViewById(R.id.refreshLv);
    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, arr);

    lv.setAdapter(adapter);
    lv.setOnRefreshListener(new OnRefreshListener<ListView>() {

        @Override
        public void onRefresh(PullToRefreshBase<ListView> refreshView) {
            // TODO Auto-generated method stub
            new AsyncTask<Void, Void, Void>() {

                @Override
                protected Void doInBackground(Void... params) {

                    try {
                        Thread.sleep(3000); // 模拟网络通信
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    return null;
                }

                protected void onPostExecute(Void result) {
                    adapter.addAll("object-c", "html5", "javascript");
                    lv.onRefreshComplete();
                };

            }.execute();
        }
    });

}

效果如下

 

posted @ 2015-08-24 20:54  carlo-z  阅读(209)  评论(0编辑  收藏  举报