listview的另一个刷新方法

利用滚动监听,实现下拉刷新的功能,如下:

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值