EditInformation erstreckt sich auf Fragment. Ich erhalte einen Fehler in dieser Zeile

loading = ProgressDialog.show(EditInformation.this,"Fetching...","Wait...",false,false);, falscher 1. Argumenttyp.

 public void RetrieveInformation(final String id)
    {
        class GetEmployee extends AsyncTask<Void,Void,String> {
            ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(EditInformation.this,"Fetching...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                showEmployee(s);
            }

            @Override
            protected String doInBackground(Void... params) {
                RequestHandler rh = new RequestHandler();
                String s = rh.sendGetRequestParam(Config.RETRIEVE_INFORMATION,id);
                return s;
            }
        }
        GetEmployee ge = new GetEmployee();
        ge.execute();
    }

Fehler

 Error:(124, 62) error: incompatible types: EditInformation cannot be converted to Context

Ich wechsle zu EditInformation.getActivity (), erhalte aber den Fehler non-static method

3
John 1 Jän. 2016 im 21:37

2 Antworten

Beste Antwort

Veränderung

loading = ProgressDialog.show(EditInformation.this,"Fetching...","Wait...",false,false);

Zu

loading = ProgressDialog.show(getActivity(),"Fetching...","Wait...",false,false);

Da Sie sich bereits in einem Fragment Kontext befinden, wird getActivity() den Trick ausführen.

3
Mohammed Aouf Zouag 1 Jän. 2016 im 18:42

Da Sie sich in einem Fragment befinden, erhalten Sie keinen Kontext, wenn Sie YourFragment.this sagen. Um dies zu erreichen, können Sie die Methode getActivity () verwenden, die den Kontext der Containeraktivität zurückgibt, und Sie können auch getActivity () sagen. GetApplicationContext () funktionieren beide einwandfrei.

1
Krishna 1 Jän. 2016 im 19:29