你的位置:首页 > 操作系统

[操作系统]强大的下拉刷新


效果预览图:

下载地址:https://github.com/chrisbanes/Android-PullToRefresh

 

activity_main.

 1 <RelativeLayout ="http://schemas.android.com/apk/res/android" 2   ="http://schemas.android.com/tools" 3   android:layout_width="match_parent" 4   android:layout_height="match_parent" 5   tools:context="com.zzw.testpulltorefresh.MainActivity" > 6  7   <com.handmark.pulltorefresh.library.PullToRefreshListView 8     android:id="@+id/listView" 9     android:layout_width="match_parent"10     android:layout_height="match_parent" />11 12 </RelativeLayout>

MainActuvity.java:

 1 package com.zzw.testpulltorefresh; 2  3 import java.util.ArrayList; 4 import java.util.Date; 5  6 import com.handmark.pulltorefresh.library.PullToRefreshBase; 7 import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode; 8 import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener; 9 import com.handmark.pulltorefresh.library.PullToRefreshListView;10 11 import android.app.Activity;12 import android.os.AsyncTask;13 import android.os.Bundle;14 import android.os.SystemClock;15 import android.widget.Adapter;16 import android.widget.ArrayAdapter;17 import android.widget.ListView;18 import android.widget.TextView;19 import android.widget.Toast;20 21 public class MainActivity extends Activity {22 23   private PullToRefreshListView listView;24   private ArrayList<String> data;25   private ArrayAdapter adapter;26   private int count = 0;27 28   @Override29   protected void onCreate(Bundle savedInstanceState) {30     super.onCreate(savedInstanceState);31     setContentView(R.layout.activity_main);32 33     data = new ArrayList<String>();34 35     listView = (PullToRefreshListView) findViewById(R.id.listView);36     // 设置向下滑动时刷新37     listView.setMode(Mode.PULL_FROM_START);38     // 设置监听39     listView.setOnRefreshListener(new OnRefreshListener<ListView>() {40 41       @Override42       public void onRefresh(PullToRefreshBase<ListView> refreshView) {43         // 在这完成业务逻辑44         new MyAsyncTask().execute();45       }46     });47 48     adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, data);49     listView.setAdapter(adapter);50 51     // 设置如果数据为空的时候显示什么52     TextView textView = new TextView(this);53     textView.setText("请下拉刷新");54     listView.setEmptyView(textView);55   }56 57   private class MyAsyncTask extends AsyncTask {58 59     @Override60     protected void onPreExecute() {61       // 开始刷新62       listView.setRefreshing();63     }64 65     @Override66     protected Object doInBackground(Object... params) {67       // 假设耗时时间为3秒68       SystemClock.sleep(3000);69       return count++;70     }71 72     @Override73     protected void onPostExecute(Object result) {74 75       data.add(0, result + "");76       adapter.notifyDataSetChanged();77 78       // 设置标签79       listView.setLastUpdatedLabel("最后更新新的时间:" + new Date());80 81       // 刷新完成82       listView.onRefreshComplete();83       Toast.makeText(getApplicationContext(), "加载成功", 0).show();84     }85   }86 87 }