2013-05-09 58 views
0

这里我试图display progressbar when Calling Soap service and dismiss progressbar when response came from service, but progressbar does not appear。它直接提交数据,当我试图做力的应用程序,它崩溃...使用Soap方法的ProgressDialog

我想尽快显示进度条皂方法开始,当它得到了解雇......

请告诉我该怎么办 ???

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 

    Button btnEnter = (Button) findViewById(R.id.btRegister); 
    btnEnter.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 

      if (Name.equals("")) { 
       textValidation.setText("Please Enter Your Name."); 
      } else if (Number.equals("")) { 
       textValidation.setText("Please Enter Your Contact Number."); 
      } else { 
       textValidation.setText(""); 

       ProgressDialog dialog = ProgressDialog.show(Register.this, 
         "", "Loading. Please wait...", true); 

       request = new SoapObject(NAMESPACE, METHOD_NAME); 

       name = new PropertyInfo(); 
       name.setName("Name"); 
       name.setValue(Name); 
       name.setType(String.class); 
       request.addProperty(name); 

       number = new PropertyInfo(); 
       number.setName("Number"); 
       number.setValue(Number); 
       number.setType(String.class); 
       request.addProperty(number); 

       SoapSerializationEnvelope envp = new SoapSerializationEnvelope(
         SoapEnvelope.VER11); 
       envp.dotNet = true; 
       envp.setOutputSoapObject(request); 
       HttpTransportSE androidHttpTransport = new HttpTransportSE(
         URL); 
       try { 
        androidHttpTransport.call(SOAP_ACTION, envp); 
        SoapPrimitive response = (SoapPrimitive) envp 
          .getResponse(); 
        Response = response.toString(); 

        if (Response.equals("Success")) { 
         etName.setText(""); 
         etEmail.setText(""); 
         etNumber.setText(""); 
         imageView.setTag(""); 

         CookieManager cm = CookieManager.getInstance(); 
         cm.setAcceptCookie(true); 
         cm.setCookie("http://192.168.2.9", 
           "MytestbuddyApp=" + Course); 
         CookieSyncManager.getInstance().sync(); 

         Intent openStartingPoint = new Intent(
           "com.MobileWeb.mytestbuddy.Main"); 
         startActivity(openStartingPoint); 
        } else { 
         textValidation.setText("Something is Wrong."); 
        } 

       } catch (Exception e) { 
        textValidation.setText(e.toString()); 
       } 
       dialog.dismiss(); 
      } 
     } 

    }); 
+1

用于在onPreExecute SOAP请求显示进度对话框中的AsyncTask()使doInBackground SOAP请求()在onPostExecute()和更新驳回对话ui – Raghunandan 2013-05-09 11:17:55

回答

1

使用的AsyncTask这个工作......

public class CallWebServiceAsyncTask extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPreExecute() { 
      //here show your progressdialog 
       ProgressDialog dialog = ProgressDialog.show(Register.this, 
        "", "Loading. Please wait...", true); 
     } 

     @Override 
     protected void onPostExecute(Void result1) { 
      //here dismiss the progressdialog 
        dialog.dismiss(); 
} 
     @Override 
     protected Void doInBackground(Void... arg0) { 
      //make your servcie request here 
     } 
} 
+0

在响应时,应用程序崩溃...如何处理它? – 2013-05-09 12:19:33

+0

这是你在logcat中遇到的错误吗? – user1213202 2013-05-10 03:32:48

+0

嘿,我已经把cookiemanager部分和新的活动代码放在onPostExecute上,并且解决了...... :) – 2013-05-10 06:00:50