Android 分页加载

来源:互联网 发布:wps有mac版本吗 编辑:程序博客网 时间:2024/06/05 17:34

    private ListView listView;
    private List<HomeBean.DataBean> fenList;
    int index = 0;
    final int PAGE_NUMBER = 7;
    private HomeAdapter adapter;
    private List<HomeBean.DataBean> data;
    private View pro_bar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fen_ye);

        listView = (ListView) findViewById(R.id.fen_ye_list);
        String url = "http://m.yunifang.com/yunifang/mobile/goods/getall?random=87749&encode=ac6bd45b8f50b626a6843b294af8fed5";
        fenList = new ArrayList<HomeBean.DataBean>();

        getData(url);

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
                if (i == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
                    if (absListView.getLastVisiblePosition() == fenList.size()-1) {
                        index = index + PAGE_NUMBER;
                        addData();
                    }
                }
            }

            @Override
            public void onScroll(AbsListView absListView, int i, int i1, int i2) {

            }
        });

    }

    private void getData(String url) {
        MyHttp.getdata(HttpRequest.HttpMethod.GET, url, null, new RequestCallBack<String>() {
            @Override
            public void onSuccess(ResponseInfo<String> responseInfo) {
                ShareUtil.saveStringData(FenYeActivity.this, "shou_ye", responseInfo.result);
                progressData(responseInfo.result);
            }

            @Override
            public void onFailure(HttpException e, String s) {

            }
        });
    }

    private void progressData(String result) {
        HomeBean homeBean = GsonUtils.jsonToBean(result, HomeBean.class);
        if (homeBean.getCode() == 200) {
            data = homeBean.getData();
            Log.i("----",data.size()+"+++");
            //
            addData();

            /*if (data.size() != 0) {

                HomeAdapter adapter = new HomeAdapter(this, data);
                listView.setAdapter(adapter);
            }*/
        }

    }

    /**
     * 去集合里面添加数据 设置适配器
     */
    private void addData() {
        for (int i = index; i < index + PAGE_NUMBER; i++) {
            if (i < data.size()) {
                fenList.add(data.get(i));
            }

        }
        Log.i("---",fenList.size()+"+++fen");
        if (fenList.size() == data.size()) {
            Toast.makeText(this,"没有更多了...",Toast.LENGTH_SHORT).show();
        }

        if (adapter == null) {
            adapter = new HomeAdapter(this, fenList);
            listView.setAdapter(adapter);
        }else {
            adapter.notifyDataSetChanged();
        }

    }

    private class HomeAdapter extends BaWeiAdapter<HomeBean.DataBean> {
        List<HomeBean.DataBean> list;
        Context context;


        public HomeAdapter(Context context, List<HomeBean.DataBean> list) {
            super(context, list);
            this.context = context;
            this.list = list;
        }

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                /**
                 * 布局文件纯属引用
                 */
                convertView = View.inflate(context, R.layout.fen_ye_item, null);
            }

            TextView textView = (TextView) convertView.findViewById(R.id.fen_text);
            textView.setText(list.get(position).getEfficacy()+"---"+position);


            return convertView;
        }
    }
0 0