Daten von Asynk class an mainclass(aufrufende class) übergeben

R

renpen

Neues Mitglied
0
Hi,
ich möchte mir mit onPostExecute() daten aus dem asynk thread an meine aufrufende klasse zurückgeben lassen.
Habe folgendes probiert:
android - How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class? - Stack Overflow

Code:
main:
Code:
public void datenHolen()
    {
    DataBaseConnectorAsync dbc = new DataBaseConnectorAsync(this);
        dbc.delegate =  this;
dbc.execute();
}

public void processFinish(ArrayList<String> output) { 
        ListAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, output);
        
        
        
        listViewHa = (ListView)findViewById(R.id.listViewHa);
        listViewHa.setAdapter(adapter);
        
    }
interface AsyncResponse:
Code:
import java.util.ArrayList;

public interface AsyncResponse {
    void processFinish(ArrayList<String> output);
}
onPostExcecute:
Code:
protected void onPostExecute(ArrayList<String> result) {
    
    delegate.processFinish(result);  //hier kommt die nullPointer
     
     prog.dismiss();
  

     


}
ich habs so gemacht wie bei stackoverflow beschrieben, aber in den kommentaren kann man sehen, das es mal geht und bei den anderen ebenfalls eine nullPointer kommt. Wobei ich ja eigentlich mit
Code:
dbc.delegate =  this;
ein Objekt übergebe.

I hope you can help ;D:thumbsup:

//alternativ bin ich natürlich auch für andere Lösungsvorschläge offen, die letzlich auch zum Ziel führen ;D
 
Danke, habe mir beides durchgelesen , habe meinen Code versucht dahingehend zu verbessern. Habe es aber leider nicht geschafft weiterzukommen, es kommt nach wie vor eine nullPointer an der selben Stelle ;/

Code:
asynkTask:

Code:
public class DataBaseConnectorAsync extends AsyncTask<Void, Void , ArrayList<String>> {
     private AsyncResponse callback;
public DataBaseConnectorAsync(Context context) 
    {
    this.context = context;
     this.callback = (AsyncResponse)context;

    }
protected void onPostExecute(ArrayList<String> result) {
    
     callback.processFinish(result); // hier fliegt die nullPointerException
     
     prog.dismiss();
  

     


}
der rest sieht so aus wie bereits oben gepostet

für mich siehts so aus, als wäre der Code eigentlich korrekt ;/
 
Zuletzt bearbeitet:
Kann es sein, dass du den Stacktrace falsch interpretierst,
und dass der Nullpointer letztendlich daher kommt,
dass "result" null ist (und der Fehler damit im doInBackground() liegt)?
 
Das lässt sich ja einfach prüfen:
Breackpoint an der Stelle
callback.processFinish(result);

und gucken was davon null ist.
Fertig.

Und du postet hier am besten mal den ganzen Stacktrace
 

Ähnliche Themen

Helmut1A
  • Helmut1A
Antworten
7
Aufrufe
1.125
Helmut1A
Helmut1A
A
Antworten
10
Aufrufe
1.017
swa00
swa00
Horstmann365
Antworten
1
Aufrufe
1.057
jogimuc
J
Zurück
Oben Unten