第一种:实现OnScrollListener,重写的几个方法有:
onscroll()、onScrollStateChanged()。
那么在用移动互联技术下载图片等信息的时候,显示既定的条数,当滚动到最后一条的时候显示可见布局,而后适配器notifyDataSetChanged()改变list数据,可见布局消失setVisibility(View.GONE);
<span style="font-size:14px;">public class loadmoreActivity extends Activity implements OnScrollListener{
private ListView listview;
private View moreView;
private SimpleAdapter adapter;
private ArrayList<HashMap<String, String>> listData;
private int count;
private int lastItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView) findViewById(R.id.listview);
moreView=getLayoutInflater().inflate(R.layout.prenovate, null);
listData=new ArrayList<HashMap<String,String>>();
prepareData();
count=listData.size();
adapter=new SimpleAdapter(this, listData, R.layout.list_item,
new String[]{"itemText"}, new int[]{R.id.text_name});
listview.addFooterView(moreView);
listview.setAdapter(adapter);
listview.setOnScrollListener(this);
}
private void prepareData() {
// TODO Auto-generated method stub
for(int i=1;i<5;i++){
HashMap<String, String> map=new HashMap<String, String>();
map.put("itemText", i+("大波妞真在接近"));
listData.add(map);
}
}
private void loadMoreDate(){
for(int i=count;i<count+5;i++){
HashMap<String, String> map=new HashMap<String, String>();
map.put("itemText", i+("大波妞真在接近"));
listData.add(map);
}
count = listData.size();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
lastItem = firstVisibleItem + visibleItemCount -1;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(lastItem == count && scrollState==this.SCROLL_STATE_IDLE){
moreView.setVisibility(view.VISIBLE);
mHandler.sendEmptyMessage(0);
}
}
private Handler mHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0:
loadMoreDate();
adapter.notifyDataSetChanged();
moreView.setVisibility(View.GONE);
if(count>30){
Toast.makeText(MainActivity.this, "所有的妞都在这里了", 3000).show();
listview.removeFooterView(moreView);
}
break;
}
};
} ;
}</span>