| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
cm54
10年前发布

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

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>