Okay, ich gebe auf. Ich kann es nicht herausfinden.LoaderManager akzeptiert 'das' nicht
Ich verfolge einen Udacity-Kurs zu Android-Grundlagen und muss herausfinden, wie man Daten mit einem Loader lädt. Allerdings, wenn ich die folgende Zeile verwenden, die ‚this‘ ist rot und zeigen die folgenden Fehler hervorgehoben:
Wrong 3rd argument type. Found 'com.example.carl.latestnews.MainActivity', required: 'android.app.LoaderManager.LoaderCallbacks<java.lang.Object>
Ich habe gegoogelt, gestapelt und versuchten Vorschlag, den ich gefunden habe. Ich habe versucht, eine innere Klasse zu erstellen, die die Rückrufe implementiert. Ich habe eine Brickwall geschlagen und ich sitze hier und kratze mich am Kopf, um herauszufinden, was ich vermisse!
Kann mir jemand sagen, was ich hier falsch mache?
Vielen Dank im Voraus!
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
}
}
Sie bitte Ihre Frage bearbeiten und Ihre 'dataLoader' Klassendefinition bereitstellen. – CommonsWare