2016-10-25 5 views
1

Warum kann ich die doInBackground-Methode in meiner Klasse nicht überschreiben?Kann doInBackground-Methode (asyncTask) nicht überschreiben

public class AttemptLogin extends AsyncTask { 


@Override 

protected void onPreExecute() { 

    super.onPreExecute(); 

} 

@Override 

protected JSONObject doInBackground(String... args) { 



    String email = args[2]; 
    String password = args[1]; 
    String name= args[0]; 

    ArrayList params = new ArrayList(); 
    params.add(new BasicNameValuePair("username", name)); 
    params.add(new BasicNameValuePair("password", password)); 
    if(email.length()>0) 
     params.add(new BasicNameValuePair("email",email)); 

    JSONObject json = jsonParser.makeHttpRequest(URL, "POST", params); 


    return json; 

} 

protected void onPostExecute(JSONObject result) { 

    // dismiss the dialog once product deleted 
    //Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show(); 

    try { 
     if (result != null) { 
      Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show(); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 


} 

} 

Fehler: Klasse AttemptLogin muss abstrakt deklariert werden oder implementieren abstrakte Methode ‚doInBackground (Params ...) in 'AsyncTask'

Es funktioniert, wenn ich die Parameter des doInBackground zu (Objekt ändern [ ]). Warum kann ich String-Werte nicht übergeben?

+0

Those 3 paramters in '<>' Dinge zum Objekt sind irgendwie wichtig. https://docs.oracle.com/javase/tutorial/java/generics/types.html – zapl

Antwort

1
public class AttemptLogin extends AsyncTask<String, Void, JSONObject> {...} 
1

Ändern Sie Ihren Code so etwas wie dieses

public class AttemptLogin extends AsyncTask<String,Void,JSONObject> { 
... 

Sie haben AsyncTask die Klasse Ihres Rückgabetyp zu sagen, sonst defaults es

Verwandte Themen