android-pulltorefresh的使用
两种方法:
- 将
android-pulltorefresh
的相关类文件,以及资源进行复制和粘贴
进行导入。 - 或者
- 使用他本身的library,进行引用。
方式:在project.properties
文件中指定引用的位置:android.library.reference.1=library/Android-PullToRefresh
“1”
代表第一个引用的库 - 使用
pulltorefresh
来代替listview
,实质是:继承了Listview
并实现了OnScrollListener
的接口
修改下拉出现的刷新的view的控制在<com.markupartist.android.widget.PullToRefreshListView android:id="@+id/android:list" android:layout_height="fill_parent" android:layout_width="fill_parent" />
pulltorefresh
的onScroll()
的方法中,并且需要加载刷新出现头部的布局
-
两种实现方式,
-
一种继承
listactivity
(默认listview
的为@+id/android:list
,可选项的view为:@id/android:empty
)setContentView(R.layout.pull_to_refresh); mPullToRefreshListView=(PullToRefreshListView) getListView();
-
一种继承activity
mPullToRefreshListView = (PullToRefreshListView)findViewById(R.id.my_list); mPullToRefreshListView.setEmptyView(findViewById(R.id.empty));
这种的
pulltorefresh
包含了header
(头部),会使得子项的点击错误的情况,既:position
不从0
开始,详情:
ListView有Header时,onItemClick里的position不正确
所以:点击pulltorefresh子项的时候,要使用parent.getAdapter().getItem(position);
来进行纠错。@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (DEBUG) Log.d(TAG, "onItemClick() : pos=" + position + ", id=" + id); parent.getAdapter().getItem(position); // @warning: Should not use mAdapter // do something }
使用
setOnRefreshListener();
进行刷新操作// Set a listener to be invoked when the list should be refreshed. mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { // Do work to refresh the list here.这是一个继承AsyncTask的类,进行异步加载,并隐藏头部的作用 new GetDataTask().execute(); } });
参考来源:
开源项目:android-pulltorefresh
博客:android-pulltorefresh使用心得
-