欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

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

来源: javaer 分享于  点击 33002 次 点评:48

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


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>  
相关栏目:

用户点评