向下滚动时空白的viewpager活动

时间:2015-01-27 10:24:26

标签: java android json

我正在使用带有gridview的viewpager并将json数据下载到其中并实现了gridview滚动侦听器,但每当我再次启动活动时,实现sroll侦听器的当前viewpager片段显示为空白。 这是我的代码,请看看并告诉我我的错误。

         //My Activity Fragment

            private static String url = "http://--------/------";

            private int mVisibleThreshold = 5;
            private int mCurrentPage = 0;
            private int mPreviousTotal = 0;
            private boolean mLoading = true;
            private boolean mLastPage = false;
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {

                View rootView = inflater.inflate(R.layout.gridview_fragment, container,
                        false);
                setRetainInstance(true);
                arrayList = new ArrayList<Items>();
                gridView = (GridView) rootView.findViewById(R.id.gridView1);
        //My Json Execution
                new LoadData().execute(url);
    //Scroll listener when gridview reaches at end
                gridView.setOnScrollListener(new OnScrollListener() {
                    @Override
                    public void onScroll(AbsListView view, int firstVisibleItem,
                            int visibleItemCount, int totalItemCount) {

                        if (mLoading) {
                            if (totalItemCount > mPreviousTotal) {

                                mLoading = false;
                                mPreviousTotal = totalItemCount;
                                mCurrentPage++;

                                if (mCurrentPage + 1 > 10) {
                                    mLastPage = true;
                                }
                            }
                        }
                        if (!mLastPage
                                && !mLoading
                                && (totalItemCount - visibleItemCount) <= (firstVisibleItem + mVisibleThreshold)) {
//Loading new datas in gridview
                            new LoadData()
                                    .execute("http://-----/-----");
                            mLoading = true;
                        }
                    }

                });

                return rootView;

            }

            private class LoadData extends AsyncTask<String, Void, Void> {


                @Override
                protected void onPostExecute(Void result) {

                    //checking whether adapter is null or not
                    if (adap == null) {
                        adap = new Grid_View_Adatper(getActivity()
                                .getApplicationContext(), arrayList);
                        gridView.setAdapter(adap);
                    }
                    adap.notifyDataSetChanged();
                    super.onPostExecute(result);
                }



                @Override
                protected Void doInBackground(String... urls) {
                    try {

                        HttpClient client = new DefaultHttpClient();
                        HttpGet httpget = new HttpGet(urls[0]);
                        HttpResponse response = client.execute(httpget);
                        HttpEntity entity = response.getEntity();
                        String data = EntityUtils.toString(entity);

                        JSONArray json = new JSONArray(data);

                        for (int i = 0; i < json.length(); i++) {

                            JSONObject e = json.getJSONObject(i);

                            String name = e.getString("name");
                            String price = e.getString("price");
                            String image = e.getString("image");
                            String code = e.getString("sku");
                            tems = new Items(name, price, image, code);
                            arrayList.add(tems);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    } catch (ClientProtocolException e) {


                    } catch (IOException e) {


                    } catch (RuntimeException e) {

                    }

                    return null;
                }


            }
        }

提前致谢...

0 个答案:

没有答案