package com.zzw.testrefresh; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity implements OnScrollListener { private ArrayList<String> data; private ArrayAdapter<String> adapter; private int firstVisibleItem; private int visibleItemCount; private int totalItemCount; @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 mListView = (ListView) findViewById(R.id.listView); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); mListView.setAdapter(adapter); mListView.setOnScrollListener(this); } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (OnScrollListener.SCROLL_STATE_IDLE == scrollState) { if (firstVisibleItem == 0) { addTop(); } if (firstVisibleItem + visibleItemCount == totalItemCount) { addBottom(); } } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { this.firstVisibleItem = firstVisibleItem; this.visibleItemCount = visibleItemCount; this.totalItemCount = totalItemCount; } private void addTop() { data.add(0, "头部添加数据--" + (totalItemCount + 1)); adapter.notifyDataSetChanged(); } private void addBottom() { data.add("尾部添加数据--" + (totalItemCount + 1)); adapter.notifyDataSetChanged(); } }