package com.kitty.poclient.util;
import java.util.List;
import java.util.Map;
import android.util.Log;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
public class ListviewDataPositionRecorder {
public static final String TAG = "ListviewPositionRecorder:";
private int firstVisibleItemPosition = 0;
private int scrollTop = 0;
private Object[] dataArray;
private List dataList;
private Map dataMap;
public int getFirstVisibleItemPosition() {
return firstVisibleItemPosition;
}
public void setFirstVisibleItemPosition(int firstVisibleItemPosition) {
this.firstVisibleItemPosition = firstVisibleItemPosition;
}
public int getScrollTop() {
return scrollTop;
}
public void setScrollTop(int scrollTop) {
this.scrollTop = scrollTop;
}
public List getDataList() {
return dataList;
}
public void setDataList(List dataList) {
this.dataList = dataList;
}
public Map getDataMap() {
return dataMap;
}
public void setDataMap(Map dataMap) {
this.dataMap = dataMap;
}
public Object[] getDataArray() {
return dataArray;
}
public void setDataArray(Object[] dataArray) {
this.dataArray = dataArray;
}
public ListviewDataPositionRecorder registerListviews(ListView[] listViews) {
for (final ListView lv : listViews) {
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
Log.e("BUG913", TAG+"onScrollStateChanged:SCROLL_STATE_IDLE");
setFirstVisibleItemPosition(lv.getFirstVisiblePosition());
if (lv.getChildAt(0) != null) {
setScrollTop(lv.getChildAt(0).getTop());
}
Log.e("BUG913", TAG+" lv.getFirstVisiblePosition()="+lv.getFirstVisiblePosition());
Log.e("BUG913", TAG+" lv.getChildAt(0).getTop()="+lv.getChildAt(0).getTop());
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
});
}
Log.e("BUG913", "registerListviews:this="+this);
return this;
}
@Override
public String toString() {
return "{LPRecorder: firstVisibleItemPosition="+firstVisibleItemPosition+",scrollTop="+scrollTop+",data="+dataArray+",dataMap="+dataMap+"}";
}
}