Ich habe die MainAcitivity nun folgendermasse:
public void downloadKlick(View view) {
setContentView(R.layout.besser);
SubClass mySubClass;
mySubClass = new SubClass();
mySubClass.execute();
mySubClass.registerCallback(new MyCallbackClass(){
public void callbackReturn(Bitmap result) {
ImageView imageView = (ImageView) findViewById(R.id.show2);
TextView textResult = (TextView) findViewById(R.id.antwort);
textResult.setText("Callback function called");
imageView.setImageBitmap(result);
}}
);
}
Das fuktioniert.
Die SubClass sieht folgendermassen aus:
@SuppressWarnings("unused")
class SubClass extends AsyncTask {
String url = "ramsiprojekt.bplaced.net/dateien";
Bitmap bitmap;
@Override
protected Void doInBackground(Void... params) {
try {
Document document = Jsoup.connect(url).get();
Elements img = document.select("img[src$=.jpg]");
String imgSrc = img.attr("src");
InputStream input = new java.net.URL(imgSrc).openStream();
bitmap = BitmapFactory.decodeStream(input);
} catch (IOException e) {
System.out.println("There was an error");
e.printStackTrace();
}
return null;
}
MyCallbackClass callback;
interface MyCallbackClass{
void callbackReturn(Bitmap result);
}
public void registerCallback(MyCallbackClass myCallback)
{
callback= myCallback;//Callback als >Klassenvar setzen
}
protected void onPostExecute(Bitmap result) {
callback.callbackReturn(result);
}
}
Leider kam beim ausführen dann folgende Fehlermedlung:
11-14 15:30:38.125: E/AndroidRuntime(18398): java.lang.RuntimeException: An error occured while executing doInBackground()
Wo habe ich den Fehler bei doInBackgoud() gemacht?
(Ich poste den ganzen Code, damit man alle nützlichen Informationen sieht)
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.