Ich habe eine AsyncTask GoogleBookAsyncTask
, die ich in einem Fragment ausführen möchte. Ich folge diesem anderen SO post. Es erfordert meine Fragment-Klasse BookListingActivityFragment
, um eine Schnittstelle AsyncResponse
zu implementieren und seine abstrakte Methode onProcessFinish()
zu deklarieren.Als innere Klasse deklariert, aber Fehler "muss abstrakt erklärt oder implementiert werden" persistent
Die onProcessFinish()
in meinem Fragment ist als anonymer Klassenleben folgenden zu erklären.
public GoogleBookAsyncTask mGoogleBookAsyncTask = new GoogleBookAsyncTask(new AsyncResponse() {
@Override
public void processFinish(ArrayList<Book> bookArrayList) {
mBookArrayAdapter.clear();
mBookArrayAdapter = new BookAdapter(getContext(), bookArrayList);
mBookArrayAdapter.notifyDataSetChanged();
}
});
Ich erhalte einen Fehler must either be declared abstract or implement abstract method
. Dieser Fehler verschwindet, wenn ich processFinish()
als eine reguläre nicht-innere Klasse deklariere. Wie kann ich diesen Fehler beheben? Ich brauche führen Sie mGoogleBookAsyncTask.execute()
aus, um Daten von meiner AsyncTask Klasse zu erhalten.
Der vollständige Quellcode meiner App kann here gefunden werden.
"Dieser Fehler verschwindet, wenn ich onProcessFinish() als eine normale nicht-innere Klasse deklariere" - 'onProcessFinish()' ist eine Methode. Es ist keine Klasse. "Der vollständige Quellcode meiner App kann hier gefunden werden." - In diesem Repository gibt es keine AsyncTask. Es gibt auch keine "GoogleBookAsyncTask" oder "AsyncResponse". Bitte geben Sie eine [mcve] ein, einschließlich des Quellcodes für "GoogleBookAsyncTask" und "AsyncResponse". – CommonsWare
Hallo @CommonsWare Es tut mir leid. Ich habe den Projektlink und den onProcessFinish() Tippfehler behoben. Bitte schau es dir an. –
"Ich bekomme einen Fehler muss entweder abstrakt erklärt werden oder abstrakt Methode implementieren" - was abstrakte Methode sagt es, dass Sie implementieren sollten? Oder, wenn Ihre IDE eine Schnellkorrektur unterstützt, um die Methode hinzuzufügen, welche Methode fügt sie hinzu? BTW, dieser Code sollte abstürzen ('mBookArrayAdapter' wird' null'), und es hat keinen Sinn, 'notifyDataSetChanged()' auf einem Adapter aufzurufen, der nicht an eine 'AdapterView' angehängt ist. – CommonsWare