2011-06-29 75 views
0

我在使用web服務,我在onpostexecute()方法中遇到了Toast問題。我試圖根據logcat response.resultsRequestSOAP顯示吐司是從服務器檢索的字符串值。如果字符串值是1,那麼我應該在烤麪包中顯示「註冊」。如果0然後「再試一次」,如果-1然後「字段爲空」Android:同步響應Toast異步任務onpostexecute()

在我的logcat我得到的響應作爲字符串值。

問題是每次我得到「再試一次」吐司消息。

這個問題可能是布爾(我正在使用),而不是從不返回null的原始值。我混淆這一行else if(resultsRequestSOAP.booleanValue())。它不適合我。如何解決這個問題?

PLZ有人檢查onpostexecute()中的代碼並讓我知道問題。

我想比較logcatand中的值顯示這樣的敬酒。 如果它的1則「註冊」, 如果其0,那麼「重試」, 如果其-1,則「字段應該不能爲空」

幫助總是讚賞...!

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

沒有你嘗試使用僅此於吐司 – Rasel

+0

@Rasel,是試圖只用麪包 – Raj

+0

你把AsynchTask類作爲一個內部類」 – Rasel

回答

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


    } 

把這種方法在外部類

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,謝謝,但我沒有得到結果,它顯示「tryagain」有史以來y time – Raj

+0

它不適合我。 – Raj

+0

resultsRequestSOAP始終爲空。請檢查它應該更改的值 – Rasel