下拉刷新是现在微博非常流行的更新操作,android中有非常经典的类库PullToRefreshListView,不过开发者已经把java代码转成c#了,在github上面有相关的代码下载。

使用比较简单,下面给出步骤:

step1:将PullToRefreshListView类库引用到项目中,并且把相关的资源文件和xml界面文件也拷贝到项目中pull_to_refresh_header.axml;

step2:定义相关的类

#region 下拉刷新

private class RefreshListener : PullToRefreshListView.OnRefreshListener

{

private MainActivity mylActivity;

List<WodubaoService.Model.hotnews> tempList;

public RefreshListener (MainActivity activity)

{

mylActivity = activity;

}

public void onRefresh ()

{

ThreadPool.QueueUserWorkItem (delegate {

mylActivity.isNetWork = WebHelper.CheckNetWork (mylActivity);

if (mylActivity.isNetWork) {

tempList = mylActivity.appA.GetAppHots ();

}

mylActivity.RunOnUiThread (delegate {

bool isUpate=false;

if (tempList != null && tempList.Count > 0) {

if(!tempList[0].articleId.Equals(mylActivity.htnList[0].articleId))

{

isUpate=true;

}

mylActivity.htnList = tempList;

}

if(mylActivity.isNetWork) {

if(isUpate)

{

mylActivity.myList=new List();

mylActivity.myList.Add(mylActivity.htnList);

mylActivity.myList.Add(“nextpage”);

mylActivity.mainListAdapter.NotifyDataSetChanged();

Toast.MakeText (mylActivity, “已更新最新资讯”, ToastLength.Short).Show ();

}

else

{

Toast.MakeText (mylActivity, “暂无更新”, ToastLength.Short).Show ();

}

} else {

Toast.MakeText (mylActivity, “网络不给力”, ToastLength.Short).Show ();

}

mylActivity.indexListView.onRefreshComplete ();

});

});

}

}

#endregion

step3:listview注册相关方法 indexListView.SetOnRefreshListener(new RefreshListener(this));