实现效果:
贴代码:
MainActivity.java
package com.example.pulltorefreshdemo;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.LinkedList;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.example.pulltorefreshdemo.view.pullrefreshview.PullToRefreshBase;
import com.example.pulltorefreshdemo.view.pullrefreshview.PullToRefreshBase.OnRefreshListener;
import com.example.pulltorefreshdemo.view.pullrefreshview.PullToRefreshListView;
public class MainActivity extends Activity {
private static final Void down = null;
private PullToRefreshListView ptrLv;
private LinkedList<String> mListItems;
private String[] mStrings = {
"keep practice", "learn more", "and more"};
private ArrayAdapter<String> adapter;
private String[] pullDownFlag = {"down"};
private String pullUpFlag = "up";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pull_to_refresh);
ptrLv = (PullToRefreshListView) findViewById(R.id.ptrLv);
mListItems = new LinkedList<String>();
// 上拉加载不可用
ptrLv.setPullLoadEnabled(true);
// 滚动到底自动加载可用
// ptrLv.setScrollLoadEnabled(true);
mListItems.addAll(Arrays.asList(mStrings));
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mListItems);
ptrLv.getRefreshableView().setAdapter(adapter);
// 设置Listener监听
ptrLv.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
setLastUpdateTime();
// new MyAsyncTask().execute(pullDownFlag);
mListItems.addFirst(getStringDate());
adapter.notifyDataSetChanged();
ptrLv.onPullDownRefreshComplete();// 隐藏加载信息
}
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
// new MyAsyncTask().execute(pullUpFlag);
mListItems.addLast(getStringDate());
adapter.notifyDataSetChanged();
ptrLv.onPullUpRefreshComplete();// 隐藏加载信息
}
});
// 设置点击监听
ptrLv.getRefreshableView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(), "onItemClick...", Toast.LENGTH_SHORT).show();
}
});
}
private void setLastUpdateTime() {
String text = getStringDate();
ptrLv.setLastUpdatedLabel(text);
}
/**
* 获取现在时间
*
* @return 返回短时间字符串格式yyyy-MM-dd HH:mm:ss
*/
public static String getStringDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}
// private class MyAsyncTask extends AsyncTask<String, Void, String[]> {
//
// @Override
// protected void onPostExecute(String[] result) {
// super.onPostExecute(result);
// }
//
// @Override
// protected String[] doInBackground(String... params) {
// if("down".equals(params[0])) {
// mListItems.addFirst(getStringDate());
// } else if("up".equals(params[0])) {
// mListItems.addLast(getStringDate());
// }
// return null;
// }
// }
}
pull_to_refresh.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!--
The PullToRefreshListView replaces a standard ListView widget.
-->
<com.example.pulltorefreshdemo.view.pullrefreshview.PullToRefreshListView
android:id="@+id/ptrLv"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
</LinearLayout>
点击下载完整代码