Остановить диалог прогресса, когда получите все данные

Это может быть простой проблемой, но я потратил впустую часы до этого. Я хочу, чтобы после загрузки данных из Backendless в другое время, когда весь список был загружен, доступ к диалоговому окну хода выполнения не выполнялся с помощью функции "нужно загружать больше".

вот мой код

    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(ложь); progressDialog.setCancelable(истина); 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();
}

}

Я новичок на Android..

1 ответ

Может быть, вы могли бы использовать ProgressBar вместо ProgressDialog. Смотрите мой ответ здесь Backendless: я не могу получить доступ к полученным данным

Другие вопросы по тегам