Wie ersetze ich .this bei einem Fragment?

  • 1 Antworten
  • Neuester Beitrag
Diskutiere Wie ersetze ich .this bei einem Fragment? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Status
Für weitere Antworten geschlossen.
P

Peter200980

Ambitioniertes Mitglied
Hallo Zusammen,

ich habe folgendes Problem:
Zuerst war das derzeitige Fragment eine Activity, d.h. folgende Zeile wurde angewendet:
new Downloader(Locations_main.this,urlAddress,lv).execute();
Da ich jetzt ein Fragment verwende, meckert AS folgendes: Error:(31, 38) error: incompatible types: Locations_main cannot be converted to Context
diese Meldung bezieht sich auf meine Downloader Activity, welche Ihr anbei zusätzlich findet:
Code:
public class Downloader extends AsyncTask<Void,Void,String> {
    Context c;
    String urlAddress;
    ListView lv;
    ProgressDialog pd;


    public Downloader(Context c, String urlAddress, ListView lv) {
        this.c = c;
        this.urlAddress = urlAddress;
        this.lv = lv;

    }



    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        pd=new ProgressDialog(c);
        pd.setTitle("Locations werden geladen");
        pd.setMessage("Locations werden geladen");

        pd.show();
    }

    @Override
    protected String doInBackground(Void... params) {
        return this.downloadData();
    }

    @Override
    protected void onPostExecute(String jsonData) {
        super.onPostExecute(jsonData);

        pd.dismiss();
        if(jsonData==null)
        {

            Toast.makeText(c,"Unable to connect to DB",Toast.LENGTH_SHORT);
        }else{
            new DataParser(c,jsonData,lv).execute();
        }
    }
    private String downloadData()
    {
        HttpURLConnection con=Connector.connect(urlAddress);

        if(con==null){
            return null;
        }

        try {
            InputStream is=new BufferedInputStream(con.getInputStream());
            BufferedReader br= new BufferedReader(new InputStreamReader(is));

            String line;
            StringBuffer jsonData=new StringBuffer();

            while((line=br.readLine()) !=null)
            {
                jsonData.append(line+"\n");
            }
            br.close();
            is.close();

            return jsonData.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

Über einen Lösungsvorschlag würde ich mich sehr freuen :)
 
Status
Für weitere Antworten geschlossen.
Ähnliche Themen - Wie ersetze ich .this bei einem Fragment? Antworten Datum
1
2