loadermanager.loadercallbacks android studio

问题描述 投票:0回答:2

我的项目中的 LoaderCallbacks 遇到问题。我已经在 android studio 中实现了 LoaderManager 。每当用户按下搜索按钮时,我都会尝试重新启动加载程序。

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);
    }
java android android-studio android-loadermanager
2个回答
1
投票

getLoaderManager
已弃用并使用已弃用的框架 Loaders。

您应该使用

LoaderManager.getInstance(MainActivity.this)
,它使用正确的支持库/AndroidX 加载器,这可能是您导入的
LoaderManager.LoaderCallbacks

LoaderManager.getInstance(MainActivity.this)
    .restartLoader(BOOK_LOADER_ID, null, MainActivity.this);

0
投票

“从 Android 9(API 级别 28)开始,加载器已被弃用。”

Android 9 于 2018 年 8 月发布。为什么在近 1.5 年后才实现已弃用的 API?

© www.soinside.com 2019 - 2024. All rights reserved.