loadermanager.loadercallbacks android студия - PullRequest
0 голосов
/ 11 февраля 2020

У меня проблемы с LoaderCallbacks в моем проекте. У меня есть LoaderManager в студии android. Я пытаюсь перезапустить загрузчик, когда пользователь нажимает кнопку поиска.

public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<List<Book>>
 mSearchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Check connection status
                checkConnection(cm);
                if (isConnected) {
                    updateQueryUrl(mSearchViewField.getQuery().toString());
                    restartLoader();
                    Log.i(LOG_TAG, "Search value: " + mSearchViewField.getQuery().toString());
                }else{
                    // Clear the adapter of previous book data
                    mAdapter.clear();
                    // Set mEmptyStateTextView visible
                    mEmptyStateTextView.setVisibility(View.VISIBLE);
                    // ...and display message: "No internet connection."
                    mEmptyStateTextView.setText("No Internet Connection");
                }
            }
        });

Но при restartLoader (), когда я пытаюсь вызвать getLoaderManager () для перезапуска загрузчика, он говорит, что аргумент обратного вызова неверный, тип третьего аргумента. Я не уверен, что я должен использовать для обратного вызова.


public void restartLoader() {
        mEmptyStateTextView.setVisibility(GONE);
        progressBar.setVisibility(View.VISIBLE);
        getLoaderManager().restartLoader(BOOK_LOADER_ID,null, MainActivity.this);
    }

1 Ответ

0 голосов
/ 11 февраля 2020

getLoaderManager устарела и использует устаревшие фреймворки Loaders.

Вместо этого следует использовать LoaderManager.getInstance(MainActivity.this), который использует правильную библиотеку поддержки / AndroidX Loaders, которая, вероятно, является LoaderManager.LoaderCallbacks, который вы импортировали. .

LoaderManager.getInstance(MainActivity.this)
    .restartLoader(BOOK_LOADER_ID, null, MainActivity.this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...