2017-04-12 24 views
1

朋友你好,我想分頁我recycleview所以下面結合是我的代碼Recycleview分頁不綁定適配器的Android

在onCreateVIew

LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity()); 
    mRecyclerView = (RecyclerView) rootView.findViewById(R.id.task_recycle); 
    mRecyclerView.setHasFixedSize(true); 
    mRecyclerView.setLayoutManager(mLayoutManager); 
mRecyclerView.setOnScrollListener(new EndlessRecyclerOnScrollListener(mLayoutManager) { 
      @Override 
      public void onLoadMore(int current_page) { 
       if (OnzupApplication.mPendingDatas.size() < total) { 
        page++; 
        new getPendingTask(false,true).execute(); 

       } 
      } 

     }); 

if (mAllMethods.check_Internet() == true) { 
     new getPendingTask(true,false).execute(); 
    } else { 
     mAllMethods.ShowDialog(getActivity(), "", getString(R.string.net_not_available), "OK"); 
    } 

呼叫的AsyncTask

public class getPendingTask extends AsyncTask<Void, Void, Void> { 

    private boolean showLoading; 
    boolean pagination; 

    public getPendingTask(boolean showLoading,boolean page) { 
     this.showLoading = showLoading; 
     this.pagination=page; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     if (showLoading == true) { 
      mProgressDialog = ProgressDialog.show(getActivity(), "", getString(R.string.loading)); 

     } 
    } 

    @Override 
    protected Void doInBackground(Void... voids) { 
     mGetPendigTask = (GetAllPendigTask) mPostParseGet.getPendingTask(mGetPendigTask, token, page); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 
     if (showLoading == true) { 
      if (mProgressDialog != null) { 
       mProgressDialog.dismiss(); 
      } 
     } 

     try { 
      if (mPostParseGet.isNetError) { 
       mAllMethods.ShowNoConnectionDialog(mActivity, mContext, "", getString(R.string.net_not_available), getString(R.string.setting), getString(R.string.cancel)); 
      } else if (mPostParseGet.isOtherError) { 
       if (!mPostParseGet.isRequestTimeOutError) { 
        new ActivityHelper(mActivity).sendMail(token); 
       } 
       mAllMethods.ShowDialog(mActivity, "", getString(R.string.data_not_found), "OK"); 
      } else { 
       if (mGetPendigTask.isSuccess() == true) { 
        mPendingDatas = getData(); 


        total = Integer.parseInt(mGetPendigTask.getTotalitems()); 

        if (mGetPendigTask.getTasks().size() > 0) { 
         mTextViewNoData.setVisibility(View.GONE); 
         mRecyclerView.setVisibility(View.VISIBLE); 
         mAllPendingRecyclerAdapter = new AllPendingRecyclerAdapter(getActivity(), OnzupApplication.mPendingDatas); 
         if (pagination==false) 
         { 
          mRecyclerView.setAdapter(mAllPendingRecyclerAdapter); 
         } 
         mAllPendingRecyclerAdapter.notifyDataSetChanged(); 
        } else { 
         mTextViewNoData.setVisibility(View.VISIBLE); 
         mRecyclerView.setVisibility(View.GONE); 
        } 

       } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 
} 

當我呼籲上面的代碼1頁面加載,但當我滾動第二頁大ta沒有加載任何想法我怎麼能解決這個問題?

回答

0

因爲該行

mAllPendingRecyclerAdapter = new AllPendingRecyclerAdapter(getActivity(), OnzupApplication.mPendingDatas); 

你做在第一時間創建適配器,當你在recyclerview使用負載更多的功能。您應該將數據添加到您自己的適配器中,而不是創建新的數據。