下拉刷新

来源:互联网 发布:对数组元素的引用正确 编辑:程序博客网 时间:2024/05/17 06:26


package com.example.swiperefreshlayout;import java.util.ArrayList;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;import android.util.Log;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {private SwipeRefreshLayout sr;private int count = 0;private ArrayList<String> data = new ArrayList<String>();private ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sr = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);ListView list = (ListView) findViewById(R.id.listView);// 设置刷新动画的颜色,可以设置1或者更多.// 我们暂时使用三个Android系统自带的颜色。sr.setColorSchemeResources(android.R.color.holo_blue_dark,android.R.color.holo_green_dark,android.R.color.holo_orange_dark);sr.setOnRefreshListener(new OnRefreshListener() {// SwipeRefreshLayout接管其包裹的ListView下拉事件。@Overridepublic void onRefresh() {// 每一次对ListView的下拉动作,将触发SwipeRefreshLayout的onRefresh()。new MyTask().execute();}});// 使用Android系统自带的一个简单TextView布局文件android.R.layout.simple_list_item_1显示我们的额数据内容。adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);list.setAdapter(adapter);}private class MyTask extends AsyncTask{@Overrideprotected void onPreExecute() {// true,刷新开始,所以启动刷新的UI样式sr.setRefreshing(true);}@Overrideprotected Object doInBackground(Object... arg0) {Log.d("后台线程","开始耗时操作...");try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Log.d("后台线程","耗时操作完毕.");return count++;}@Overrideprotected void onPostExecute(Object result) {// add(0,xxx)每次更新的数据添加到头部data.add(0, "数据" + result);adapter.notifyDataSetChanged();// 刷新完毕// false,刷新完成,要停止UI的刷新表现样式sr.setRefreshing(false);}}/*// 每一次下拉刷新将触发更新操作动作。// 这里将是比较耗时的操作:如网络请求的数据,加载一个大图片。// 简单期间,我们假设就是简单的将count数据加1,然后更新显示。// 备注:sr.setRefreshing(true) 到 sr.setRefreshing(false)之间的这段代码 ,// 在实际的应用开发中一般就是线程化的、耗时的或者后台的操作代码。private void longTimeOperation() {// true,刷新开始,所以启动刷新的UI样式sr.setRefreshing(true);// 开始启动刷新// 在这里放耗时操作的 AsyncTask线程、后台Service等代码// add(0,xxx)每次更新的数据添加到头部data.add(0, "" + count++);adapter.notifyDataSetChanged();// 刷新完毕// false,刷新完成,要停止UI的刷新表现样式sr.setRefreshing(false);}*/
}


0 0
原创粉丝点击