利用滚动监听,实现下拉刷新的功能,如下:
public class ThreeActivity extends Activity {
private List<MusicList> list=new ArrayList<MusicList>();private ListView lv_list;
boolean flag = true ;
MyAdapter adapter ;
int count = 1 ;
HttpUtils httpUtils ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
lv_list=(ListView) findViewById(R.id.lv_list);
adapter=new MyAdapter( ThreeActivity.this, list);
lv_list.setAdapter(adapter);
httpUtils=new HttpUtils();
lv_list.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
switch (scrollState) {
case SCROLL_STATE_FLING://快速滑动状态
break;
case SCROLL_STATE_IDLE://停止状态
//当停止滑动 的时候 判断是不是最后一条数据
if(lv_list.getLastVisiblePosition()==(list.size()-1)){
System.out.println("最后一条数据 ");
init() ;
}else{
System.out.println("当前最后一条数据是--->"+
lv_list.getLastVisiblePosition());
}
break ;
case SCROLL_STATE_TOUCH_SCROLL://跟随手指滑动
break ;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
}) ;
}
public void init(){
httpUtils.send(HttpMethod.POST, "http://169.254.61.202:8080/Music03/SelectMusic?u_id=&page=10&page_size="+count, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// TODO Auto-generated method stub
Gson g=new Gson();
MyJson mj=g.fromJson(arg0.result, MyJson.class);
count++ ;
//如果条件满足 说明还有数据
if(mj.getMusiclist().size()>=10){
list.addAll(mj.getMusiclist()) ;
//刷新适配器
adapter.notifyDataSetChanged() ;
}else{
if(flag){
list.addAll(mj.getMusiclist()) ;
//刷新适配器
adapter.notifyDataSetChanged() ;
//改变标记位的值
flag = false ;
}else{
//Toast.makeText(MainActivity.this, "已经全部加载完成", 3000).show() ;
}
}
Log.e("TAG", "qqqqqqqqqqqqqqq...........q"+mj);
// //遍历
// for (int i = 0; i < mj.getMusiclist().size(); i++) {
//
// MusicList mll=new MusicList(mj.getMusiclist().get(i).getMc_image_name(),
// mj.getMusiclist().get(i).getMc_imageurl());
// list.add(mll);
// Log.e("TAG", "qqqqqqqqqqqqqqqq"+list);
// }
// list = mj.getMusiclist();
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
});
}
}
源代码链接:www