Android下拉/上拉刷新ListView之Android-PullToRefresh

来源:互联网 发布:东京食尸鬼 知乎 编辑:程序博客网 时间:2024/05/16 11:57

Android下拉/上拉刷新ListView之Android-PullToRefresh

Android下拉和上拉刷新ListView列表内容的的一个优秀开源框架,在github上的项目链接地址:https://github.com/chrisbanes/Android-PullToRefresh

该PullToRefresh第三方控件功能强大,使用方便。
具体使用方法:

(1)首先到github上把该项目下载解压,导入到Eclipse的工程中。
(2)将Android-PullToRefresh作为一个lib引用到自己的项目中。
然后直接使用即可。
现在给出一个Demo。

import java.util.LinkedList;    import com.handmark.pulltorefresh.library.PullToRefreshBase;  import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;  import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;  import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;  import com.handmark.pulltorefresh.library.PullToRefreshListView;    import android.support.v7.app.ActionBarActivity;  import android.widget.ArrayAdapter;  import android.widget.ListView;  import android.widget.Toast;  import android.os.Bundle;  import android.os.Handler;    public class MainActivity extends ActionBarActivity {        private PullToRefreshListView mPullRefreshListView;      private LinkedList<String> mListItems;      private ArrayAdapter<String> mAdapter;        // 数据      private int DATA = 0;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);            // Mode.BOTH:支持下拉和上拉刷新。          mPullRefreshListView.setMode(Mode.BOTH);            mPullRefreshListView                  .setOnRefreshListener(new OnRefreshListener2<ListView>() {                        // 下拉                      @Override                      public void onPullDownToRefresh(                              PullToRefreshBase<ListView> refreshView) {                          Toast.makeText(getApplicationContext(), "下拉刷新",                                  Toast.LENGTH_SHORT).show();                            addItem();                      }                        // 上拉                      @Override                      public void onPullUpToRefresh(                              PullToRefreshBase<ListView> refreshView) {                          Toast.makeText(getApplicationContext(), "上拉刷新",                                  Toast.LENGTH_SHORT).show();                            addItem();                      }                  });            // 列表到底,即看到最后一个元素。          mPullRefreshListView                  .setOnLastItemVisibleListener(new OnLastItemVisibleListener() {                        @Override                      public void onLastItemVisible() {                          Toast.makeText(getApplication(), "已经到底!",                                  Toast.LENGTH_SHORT).show();                      }                  });            ListView actualListView = mPullRefreshListView.getRefreshableView();            mListItems = new LinkedList<String>();          mAdapter = new ArrayAdapter<String>(this,                  android.R.layout.simple_list_item_1, mListItems);          actualListView.setAdapter(mAdapter);      }        // 添加数据      private void addItem() {            new Handler().postDelayed(new Runnable() {                @Override              public void run() {                  mListItems.add((DATA++) + "");                    mAdapter.notifyDataSetChanged();                  mPullRefreshListView.onRefreshComplete();              }          }, 1000);      }  }  

需要的activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"          android:layout_width="match_parent"          android:layout_height="match_parent" >                    <com.handmark.pulltorefresh.library.PullToRefreshListView              android:id="@+id/pull_refresh_list"              android:layout_width="match_parent"              android:layout_height="match_parent"                         android:divider="@android:color/black"              android:dividerHeight="1dip"                            android:fastScrollEnabled="false"              android:footerDividersEnabled="false"              android:headerDividersEnabled="false"              android:smoothScrollbar="true" />      </RelativeLayout>  
技术QQ群:364595326
0 0
原创粉丝点击