android - 如何将 "Loading . . ."对话框添加到 Android 应用程序

标签 android dialog loading

我有一个简单的安卓应用程序来访问网络服务。我想显示一个对话框 "Loading . . .." 直到加载结果并在加载结果后关闭。我使用了这段代码,但这没有显示加载消息:

public class LoadingActivity extends Activity {
   private static final String SOAP_ACTION = "http://ws.eretailer.com/";
   private static final String METHOD_NAME = "dataSender";
   private static final String NAMESPACE = "http://ws.eretailer.com/dataSender/";
   private static final String URL = "http://175.157.128.207:8085/Eretailer/services/EretailerService?wsdl";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ProgressDialog pd = new ProgressDialog(this);
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setMessage("Loading. . .");
    pd.show();
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);          

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.setOutputSoapObject(request);
    pd.show();
    HttpTransportSE ht = new HttpTransportSE(URL);
    try {

        ht.call(SOAP_ACTION, envelope);
        SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
        SoapPrimitive s = response;

        pd.dismiss();
           String str = s.toString();
           String arr1[] = str.split(" ");

           TextView tv = new TextView(this);

           for(int i = 0; i<arr1.length;i++){
           tv.append("order ID :"+arr1[i]+"\n");
          }
           setContentView(tv);

       } catch (Exception e) {

           e.printStackTrace();
       }
}
}

我该如何解决这个问题?

最佳答案

你好试试下面的代码

 private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
    @Override
    protected void onPreExecute() {
        pd.show();
        super.onPreExecute();
    }
    @Override
    protected String doInBackground(String... urls) {
        String response = "";
         HttpTransportSE ht = new HttpTransportSE(URL);
            try {

                ht.call(SOAP_ACTION, envelope);
                SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                SoapPrimitive s = response;

                pd.dismiss();
                   String str = s.toString();
                   String arr1[] = str.split(" ");

                   TextView tv = new TextView(this);

                   for(int i = 0; i<arr1.length;i++){
                   tv.append("order ID :"+arr1[i]+"\n");
                  }
                   setContentView(tv);

               } catch (Exception e) {

                   e.printStackTrace();
               }
        return response;
    }

    @Override
    protected void onPostExecute(String result) {
        pd.dismiss();
    }
}

资源:http://www.vogella.com/articles/AndroidPerformance/article.html

关于android - 如何将 "Loading . . ."对话框添加到 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460029/

相关文章:

c# - 将对话框置于窗口之上,但不置于所有内容之上

加载数据后 Swift 对象不符合 Equatable

android - Adobe Air AS3 向用户显示通知

android - 实现 OnItemClickListener,但 onItemClick 不起作用

Android对话框自行消失

android - 如何在对话框 ListView 中设置 onItemClickListener()?

javascript - 如何在 jquery ajax 的后期数据处理过程中设置加载图像?

java - 绘图时的 JApplet 加载屏幕

android - 使用 Eclipse 在 Android NDK 项目中构建 C++ 文件时出错

android - 当我导航回到 fragment 时, fragment 的内容消失了