2016-03-19 9 views
0

単純な問題かもしれませんが、その前に何時間も無駄にしています。リスト全体が読み込まれ、進行状況ダイアログにアクセスできない"より多くの負荷を必要とする"機能。データ全体を取得すると進行状況のダイアログが表示されない

ここに私のコードは

adapter = new MainAdapter(MainActivity.this, R.layout.main_row_item, totalMains); 

    setListAdapter(adapter); 

    QueryOptions queryOptions = new QueryOptions(); 
    queryOptions.setRelated(Arrays.asList("message")); 

    BackendlessDataQuery query = new BackendlessDataQuery(queryOptions); 

    Backendless.Data.of(Main.class).find(query, new LoadingCallBack<BackendlessCollection<Main>>(this, getString(R.string.loading_mains), true) 
    { 

     @Override 
     public void handleResponse(BackendlessCollection<Main> mainsBackendlessCollection) 
     { 
      mains = mainsBackendlessCollection; 

      addMoreItems(mainsBackendlessCollection); 

      super.handleResponse(mainsBackendlessCollection); 
     } 
    }); 

    ListView list = (ListView) findViewById(android.R.id.list); 
    list.setOnScrollListener(new AbsListView.OnScrollListener() 
    { 
     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) 
     { 

      } 


     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 
     { 


      if(needToLoadItems(firstVisibleItem, visibleItemCount, totalItemCount)) 
      { progressDialog = new ProgressDialog(MainActivity.this); 

progressDialog.setMessage( "...待って、より多くのデータをロード")です。 progressDialog.setIndeterminate(false); progressDialog.setCancelable(true); progressDialog.show();

   isLoadingItems = true; 
       mains.nextPage(new LoadingCallBack<BackendlessCollection<Main>>(MainActivity.this) 
       { 
        @Override 
        public void handleResponse(BackendlessCollection<Main> nextPage) 
        { 


          progressDialog.dismiss(); 


         mains = nextPage; 
         addMoreItems(nextPage); 

         isLoadingItems = false; 
        } 
       }); 
      } 
     } 
    }); 
} 


private boolean needToLoadItems(int firstVisibleItem, int visibleItemCount, int totalItemCount) 
{ 

     return !isLoadingItems && totalItemCount != 0 && totalItemCount - (visibleItemCount + firstVisibleItem) < visibleItemCount/2; 

}

private void addMoreItems(BackendlessCollection<Main> nextPage) 
{ 
    totalMains.addAll(nextPage.getCurrentPage()); 
    adapter.notifyDataSetChanged(); 
} 

}

私はアンドロイドで新しいです..

+0

あなたの質問を言い換えてください。正確に何を試してみましたか? – IceFire

+0

リスト全体がバックエンドからロードされた後にスクロールすると進行状況ダイアログが表示されるが、それ以上ロードすることはできないという問題があるので、データのリストがすべてロードされると進行状況ダイアログを停止する方法はわかりません。 –

+0

進行状況ダイアログを停止するには、進行状況ダイアログクラスのdismissメソッドを使用します。却下する前にダイアログがヌルでないことを確認してください。同じことを確認するには、ifステートメントを使用します。 –

答えて

関連する問題