Android菜鸟日记
28 listView下拉更新[仿新浪微博]
老用ios的下拉刷新 觉得用户体验很好 考虑自己做一个
本来以为是使用slidingDrawer 弄了半天才发现不是。
在网上收集了下资料,找到个还不错的[附件有]
修改了内容做给HDEasyCall用了。
如果完全解释那个 太费时间了
还是把它当做一个控件来用吧 里面的东西别管他了。
静态效果
动态自己联想吧 就那个意思了
代码在附件里面[附件里面的是原版的不是我修改过的 我修改过的在HDEasyCall项目里面]
这里就拿未修改版本做说明
首先你需要把以前你在LAYOUT XML配置的ListView换成
PullToRefreshListView
完整代码
package com.markupartist.android.example.pulltorefresh;
import java.util.Arrays;
import java.util.LinkedList;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import com.markupartist.android.widget.PullToRefreshListView;
import com.markupartist.android.widget.PullToRefreshListView.OnRefreshListener;
public class PullToRefreshActivity extends ListActivity {
private LinkedList<String> mListItems;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pull_to_refresh);
// Set a listener to be invoked when the list should be refreshed.
((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
// Do work to refresh the list here.
new GetDataTask().execute();
}
});
//onRefresh必须覆写
//OnRefreshListener是PullToRefreshListView定义的一个接口
//setOnRefreshListener是PullToRefreshListView定义的 其他listView没有
mListItems = new LinkedList<String>();
mListItems.addAll(Arrays.asList(mStrings));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mListItems);
setListAdapter(adapter);
}
private class GetDataTask extends AsyncTask<Void, Void, String[]> {
@Override
protected String[] doInBackground(Void... params) {
// Simulates a background job.
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
;
}
return mStrings;
}
@Override
protected void onPostExecute(String[] result) {
// 进度条读完需要加载的内容
// 下面那条是给适配器中的数值增加内容
mListItems.addFirst("Added after refresh...");
((PullToRefreshListView) getListView()).onRefreshComplete();
super.onPostExecute(result);
}
}
private String[] mStrings = {
"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
"Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis",
"Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
"Allgauer Emmentaler"};
}
}
2011-11-23
poolo
看看这个:http://blog.csdn.net/berber78/article/details/7387271