第一步:在项目工程中导入第三方library
第二步:修改xml文件
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/lvRecord"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="5.0dip"
android:layout_weight="1.0"
ptr:ptrHeaderTextColor="#000"
android:cacheColorHint="#00000000" />
第三步:修改java源文件
1.定义pulltorefreshListView
PullToRefreshListView prlvSettleRecord;
2.初始化pulltorefreshListView
<pre name="code" class="java"> prlvSettleRecord = (PullToRefreshListView) findViewById(R.id.prlv_settle);
3.设置同时支持上拉刷新,下拉加载
prlvSettleRecord.setMode(PullToRefreshBase.Mode.BOTH);
4.设置监听上拉刷新,下拉加载
prlvSettleRecord.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//下拉刷新
pullDownToRefresh();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//上拉加载
pullUptoLoad();
}
});
5.在下来刷新的函数中,停止刷新,同时渲染数组
prlvSettleRecord.onRefreshComplete();
settleItems = gson.fromJson(settleRecordArray.toString(),new TypeToken<List<SettleItem>>(){}.getType());
//adapter
settleAdapter = new SettleAdapter(mContext,settleItems);
//bind
prlvSettleRecord.setAdapter(settleAdapter);
6.在上拉加载的函数中,停止刷新,同时渲染数据
prlvSettleRecord.onRefreshComplete();
settleItems.addAll(temp);
settleAdapter.notifyDataSetChanged();
7.点击事件,position从1开始算起,实际使用中注意position-1
prlvSettleRecord.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(mContext, SettleRecordDetailActivity.class);
intent.putExtra("free",settleItems.get(position-1).getFree());
startActivity(intent);
}
});