java – LoaderManager不接受’this’
发布时间:2020-12-15 05:14:00 所属栏目:Java 来源:网络整理
导读:好的,我投降了.我想不明白. 我正在关注Android Basics的Udacity课程,需要弄清楚如何使用Loader加载数据.但是,当我使用以下行时,“this”以红色突出显示并显示以下错误: Wrong 3rd argument type. Found 'com.example.carl.latestnews.MainActivity',require
好的,我投降了.我想不明白.
我正在关注Android Basics的Udacity课程,需要弄清楚如何使用Loader加载数据.但是,当我使用以下行时,“this”以红色突出显示并显示以下错误: Wrong 3rd argument type. Found 'com.example.carl.latestnews.MainActivity',required: 'android.app.LoaderManager.LoaderCallbacks<java.lang.Object> 我用谷歌搜索,堆积并尝试了我发现的建议.我已经尝试创建一个实现回调的内部类.我碰到了一堵砖墙,我坐在这里挠挠脑袋想弄清楚我错过了什么! 谁能告诉我这里我做错了什么? 提前致谢! package com.example.carl.latestnews; import android.content.Context; import android.os.Bundle; import android.support.v4.app.LoaderManager; import android.support.v4.content.AsyncTaskLoader; import android.support.v4.content.Loader; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<ArrayList<ArticleObject>> { // ArticleObject is a custom object which contains a headline,date,category etc of a news article // URL for Guardian API including API Key final static String GUARDIAN_API_URL = "https://content.guardianapis.com/search?"; // API Key final static String GUARDIAN_API_KEY = "test"; // ID for LoaderManager final static int LOADER_MANAGER_ID = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get or initialize loader manager getLoaderManager().initLoader(LOADER_MANAGER_ID,null,this); } @Override public Loader<ArrayList<ArticleObject>> onCreateLoader(int id,Bundle args) { return new dataLoader(); // dataLoader() removed for easy reading } @Override public void onLoadFinished(Loader<ArrayList<ArticleObject>> loader,ArrayList<ArticleObject> data) { / UI Update Code } @Override public void onLoaderReset(Loader<ArrayList<ArticleObject>> loader) { // Reset Code } } 解决方法
该方法期望LoaderCallbacks作为参数.
您的活动需要实施LoaderCallbacks interface. LoaderManager.LoaderCallbacks callbacks = new LoaderManager.LoaderCallbacks() { @Override public Loader onCreateLoader(int id,Bundle args) { return null; } @Override public void onLoadFinished(Loader loader,Object data) { } @Override public void onLoaderReset(Loader loader) { } getLoaderManager().initLoader(LOADER_MANAGER_ID,callback); 接口方法的实现取决于您,但此代码不会立即生效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |