android下拉刷新的方法,android下拉刷新的第三方库简单使用

1.下载

去github上面下载pulltorefresh这个library或者去我的网盘链接:http://pan.baidu.com/s/1brSfBw 密码:ob9t 下载这个zip包,然后解压,在你的项目中添加这个包里面的library,PulltorefreshListFragment,PullToRefreshViewPager 这样三个工程,当然你如果想看到示例代码也可以添加LauncherActivity这个工程,

2.示例代码

在示例代码中我们可以看到PullToRefreshListActivity中只有下拉刷新的效果,而PullToRefreshGridActivity中且有上拉刷新的效果,这样对比代码来看,在List里面我们需要在布局文件的添加 ptr:ptrMode="both"这样的一个属性,就是支持上拉和下拉刷星的属性,当然添加这个属性还要加入xmlns:ptr="http://schemas.android.com/apk/res-auto"添加这样的一个属性,这样就可以实现上拉和下拉刷新的效果了,不过如果你在List里面不对setOnRefreshListener做改变的话,上拉和下拉刷新的效果是一样的,那么,我们就来研究一下setOnRefreshListener,setOnRefreshListener参数里面有一个实现接口的方法,这个接口有两种,一种是new OnRefreshListener()另一种是new OnRefreshListener2()。要想实现 上拉和下拉刷新效果不一样就要使用第二种。并且要实现里面的

@Override

public void onPullDownToRefresh(

PullToRefreshBase refreshView) {

new GetDataTask().execute();

}

@Override

public void onPullUpToRefresh(

PullToRefreshBase refreshView) {

new GetDataTask2().execute();

}

这两个方法。那么也要实现GetDataTask()和GetDataTask2()这两个类,表示上拉刷新更新的方式 和下拉刷新更新的方式。那么我就把整个代码附上来。小伙伴们看看吧。

package com.example.pulltorefreshtest;

import java.util.ArrayList;

import java.util.LinkedList;

import com.handmark.pulltorefresh.library.PullToRefreshBase;

import com.handmark.pulltorefresh.library.PullToRefreshListView;

import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;

import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;

import android.os.AsyncTask;

import android.os.Bundle;

import android.R.integer;

import android.app.Activity;

import android.text.format.DateUtils;

import android.view.Menu;

import android.widget.ArrayAdapter;

import android.widget.GridView;

import android.widget.ListView;

import android.widget.Toast;

public class MainActivity extends Activity {

private PullToRefreshListView mpullToRefreshListView;

private ArrayAdaptermArrayAdapter;

private LinkedList mArrayList = new LinkedList();;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mpullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);

mArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_expandable_list_item_1, mArrayList);

mpullToRefreshListView.setAdapter(mArrayAdapter);

mpullToRefreshListView.setOnRefreshListener(new OnRefreshListener2() {

@Override

public void onPullDownToRefresh(

PullToRefreshBase refreshView) {

new GetDataTask().execute();

}

@Override

public void onPullUpToRefresh(

PullToRefreshBase refreshView) {

new GetDataTask2().execute();

}

/*@Override

public void onRefresh(PullToRefreshBase refreshView) {

String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),

DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);

// Update the LastUpdatedLabel

refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);

// Do work to refresh the list here.

new GetDataTask().execute();

}*/

});

}

private class GetDataTask extends AsyncTask {

@Override

protected String[] doInBackground(Void... params) {

// Simulates a background job.

return mStrings;

}

@Override

protected void onPostExecute(String[] result) {

mArrayList.addFirst(result[0]);

mArrayAdapter.notifyDataSetChanged();

// Call onRefreshComplete when the list has been refreshed.

mpullToRefreshListView.onRefreshComplete();

super.onPostExecute(result);

}

}

private String[] mStrings = { "Abbaye de Belloc"};

private class GetDataTask2 extends AsyncTask {

@Override

protected String[] doInBackground(Void... params) {

// Simulates a background job.

return mStrings2;

}

@Override

protected void onPostExecute(String[] result) {

mArrayList.addFirst(result[0]);

mArrayAdapter.notifyDataSetChanged();

// Call onRefreshComplete when the list has been refreshed.

mpullToRefreshListView.onRefreshComplete();

super.onPostExecute(result);

}

}

private String[] mStrings2 = { "hahahha"};

}

布局文件为

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

xmlns:ptr="http://schemas.android.com/apk/res-auto"

android:id="@+id/pull_refresh_list"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:cacheColorHint="#00000000"

android:divider="#19000000"

android:dividerHeight="4dp"

android:fadingEdge="none"

android:fastScrollEnabled="false"

android:footerDividersEnabled="false"

android:headerDividersEnabled="false"

android:smoothScrollbar="true"

ptr:ptrMode="both"

ptr:ptrDrawable="@drawable/lottery"

/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值