2011-06-29 3 views
0

Je suis en train de délirer avec les services web et j'ai eu un problème avec mon Toast dans la méthode onpostexecute(). J'essaie de montrer le toast en fonction de la réponse logcat. ResultsRequestSOAP est une valeur de chaîne que je récupère du serveur. Si la valeur de la chaîne est 1 alors je devrais montrer "registerd" dans toast. Si 0 alors "Try again" et If -1 then "Field is empty"Android: même réponse dans Toast pour la tâche asynchrone onpostexecute()

Dans mon logcat je reçois la réponse comme valeur de chaîne.

Le problème est chaque fois que je reçois un message "Réessayer".

Le problème peut être avec Boolean (que j'utilise) au lieu de la valeur primitive qui ne renvoie jamais null. Je suis confondu avec cette ligne else if (resultsRequestSOAP.booleanValue()). Ça ne fonctionne pas pour moi. comment résoudre ceci?

plz quelqu'un vérifie le code dans onpostexecute() et laissez-moi savoir le problème.

Je veux comparer la valeur de logcat et montrer le toast comme ceci. Si son 1 puis « enregistré », Si le 0 puis « Try Again », Si sa -1 alors « champ ne doit pas être vide »

aide est toujours appréciée ...!

public class Register extends Activity { 

     public static final Boolean resultsRequestSOAP = null; 

    @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

private class RegisterTask extends AsyncTask<Void, Void, Boolean> { 
     private final ProgressDialog dialog = new ProgressDialog(Register.this); 

     protected void onPreExecute() { 
     this.dialog.setMessage("Registering..."); 
     this.dialog.show(); 


public Boolean register() { 

    // code for webservices******** 
    } 

return resultsRequestSOAP; 

protected void onPostExecute(Boolean resultsRequestSOAP) { 
     if (this.dialog.isShowing()) { 
      this.dialog.dismiss(); 
     } 
     if (resultsRequestSOAP == null) { 
      Toast.makeText(Register.this.getApplicationContext(), "Try Again", Toast.LENGTH_SHORT).show(); 
     } 

     else if (resultsRequestSOAP.booleanValue()) { 
     //also show register success dialog 
      Toast.makeText(Register.this.getApplicationContext(), "Registerd", Toast.LENGTH_SHORT).show(); 


     } 
     else{ 
      Toast.makeText(Register.this.getBaseContext(), "Field is empty", Toast.LENGTH_SHORT).show(); 
     } 
     super.onPostExecute(resultsRequestSOAP); 
     } 
+0

avez-vous essayé en utilisant seulement cela dans Toast – Rasel

+0

@Rasel, oui essayé seulement avec du pain grillé – Raj

+0

avez-vous mis la classe AsynchTask comme une classe interne » – Rasel

Répondre

0
 protected void onPostExecute(Boolean resultsRequestSOAP) { 
       if (this.dialog.isShowing()) { 
        this.dialog.dismiss(); 
       } 
       sendResult(resultsRequestSoap); 
super.onPostExecute(resultsRequestSOAP); 


    } 

mettre cette méthode sur la classe externe

public void sendResult(String resultsRequestSoap){ 
if (resultsRequestSOAP == null) { 
       Toast.makeText(this, "Try Again", Toast.LENGTH_SHORT).show(); 
      } 

      else if (resultsRequestSOAP.booleanValue()) { 
      //also show register success dialog 
       Toast.makeText(this, "Registerd", Toast.LENGTH_SHORT).show(); 


      } 
      else{ 
       Toast.makeText(this, "Field is empty", Toast.LENGTH_SHORT).show(); 
      } 


} 
+0

@Rasel, Merci, mais je ne reçois pas le résultat, son montrant le "tryagain" jamais y temps – Raj

+0

Ce ne fonctionne pas pour moi. – Raj

+0

resultsRequestSOAP est toujours null.check la valeur où il est supposé changer – Rasel

Questions connexes