2011-06-29 11 views
0

私はWebサービスを使い果たしています。私はonpostexecute()メソッドでToastに問題があります。私はlogcatに応じてトーストを表示しようとしていますresponse.resultsRequestSOAPは私がサーバーから取得している文字列値です。文字列の値が1の場合、私はトーストで "registerd"を表示する必要があります。 0の場合は「再試行」、-1の場合は「フィールドが空です」Android:Toastの非同期タスクonpostexecute()と同じ応答

私のlogcatでは、レスポンスを文字列値として取得しています。

問題は、「再試行」トーストメッセージが表示されるたびに発生します。

問題は、nullを返すことのないプリミティブな値の代わりにブール値(私が使用しています)である可能性があります。私はこの行と混同しています。else if(resultsRequestSOAP.booleanValue())。それは私のために働いていない。これを解決するには?

plz onpostexecute()のコードをチェックして問題を教えてください。

logcatの値を比較し、このようなトーストを表示したいと思います。 その1は、その後 その-1その後、「フィールドが空であってはならない」

ヘルプはいつでも歓迎されている場合は、「再試行」 その0の場合は、「登録」した場合...!

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に使用してみました外部クラスでこのメソッドを入れて、はい「あなたは内部クラスとしてAsynchTaskクラスを入れてなかっただけトースト – Raj

+0

てみました – 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、ありがとう、私は結果を得ていません。 y時間 – Raj

+0

それは私のために働いていない。 – Raj

+0

resultsRequestSOAPは常にnullです。変更するはずの値を確認してください – Rasel