package com.example.listviewrefresh;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
//数据源
private ArrayList<String> data;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data=new ArrayList<String>();
for(int i=0;i<20;i++){
data.add(""+i);
}
ListView lv=(ListView) findViewById(R.id.listView);
adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
lv.setAdapter(adapter);
lv.setOnScrollListener(new OnScrollListener(){
private int firstVisibleItem,visibleItemCount, totalItemCount;
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
this.firstVisibleItem=firstVisibleItem;
this.visibleItemCount=visibleItemCount;
this.totalItemCount=totalItemCount;
Log.d("","firstVisibleItem:"+firstVisibleItem+" ,visibleItemCount:"+visibleItemCount+" ,totalItemCount:"+totalItemCount);
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){
Log.d("","SCROLL_STATE_IDLE");
if(firstVisibleItem==0){
Log.d("","下拉刷新...");
addTop();
}
boolean b=(firstVisibleItem+visibleItemCount)==totalItemCount;
if(b){
addBottom();
}
}
// if(scrollState==OnScrollListener.SCROLL_STATE_FLING){
// Log.d("","SCROLL_STATE_FLING");
// }
//
// if(scrollState==OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
// Log.d("","SCROLL_STATE_TOUCH_SCROLL");
// }
}});
}
private void addTop(){
data.add(0,"头部刷新增加数据"+(data.size()));
adapter.notifyDataSetChanged();
}
private void addBottom(){
data.add("尾部刷新增加数据"+(data.size()));
adapter.notifyDataSetChanged();
}
}