下拉刷新是现在微博非常流行的更新操作,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<object>();
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));