在另一个 activity 上透明加载 activity

Transparent loading activity over another activity

我正在寻找在应用程序等待服务器响应时锁定视图中所有按钮和字段的最佳方法。我创建了一个有点透明的 activity,上面有一个 loading bar/spinner。 activity 在收到响应后自行停止。

还有其他更好的方法吗?我在论坛上找到的都是 3-4 年前使用 outdated/deprecated 方法的帖子。

关于我应该如何锁定 activity 并让用户知道正在发生的事情以及 he/she 应该等待它完成的任何建议...

谢谢

只使用 ProgressDialog 怎么样?

pd = new ProgressDialog(context);
            pd.setTitle("Processing...");
            pd.setMessage("Please wait.");
            pd.setCancelable(false);
            pd.setIndeterminate(true);
            pd.show();

然后当您的结果出现时,只需隐藏 ProgressDialog 并启动新的 Activity。

你可以简单地使用 Android AsyncTask Class 比如,

  1. 最初禁用所有视图(使用 View.setEnabled(false))

  2. 检查您的服务器响应(希望您使用的是 AsyncTask class)

  3. 简单地显示进度对话框(不可取消),直到您可以从服务器获得响应(在 AsyncTask 的 onPreExecute() 方法中)

        progressDialog = new ProgressDialog(Activity.this);
        progressDialog.setCancelable(false);
        progressDialog.setMessage("Please Wait...");
        progressDialog.show();
    
  4. 最后,一旦您获得响应(使用 View.setEnabled(true))

  5. ,请在 AsyncTask 的 onPostExecute() 中启用您的所有视图