Android:ProgressDialog 失败

发布于 2024-11-30 00:44:49 字数 669 浏览 2 评论 0原文

我在启动和运行 ProgressDialog 时遇到了真正的问题。我的代码:

ProgressDialog dialog;

try {
  dialog = new ProgressDialog(context);
  dialog.setCancelable(true);
  dialog.setMessage("Loading ...");
  // set the progress to be horizontal
  dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  // set the bar to the default value of 0
  dialog.setProgress(0);

  // set the maximum value
  dialog.setMax(100);
  // display the progressbar
  dialog.show();
 }
catch (Exception e1)
 {
   e1.printStackTrace();
 }

在下面,我创建了后台线程来加载一些内容并更新进度条,但它永远不会走那么远。在堆栈跟踪中,我得到“无法添加窗口 - 令牌 null 不适用于应用程序”,但对话框似乎(在调试器中)拥有所有正确的内容,它不为空,但我得到了这个错误。

任何人都可以阐明这一点吗?

I'm having real problems getting a ProgressDialog up and running. My code:

ProgressDialog dialog;

try {
  dialog = new ProgressDialog(context);
  dialog.setCancelable(true);
  dialog.setMessage("Loading ...");
  // set the progress to be horizontal
  dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  // set the bar to the default value of 0
  dialog.setProgress(0);

  // set the maximum value
  dialog.setMax(100);
  // display the progressbar
  dialog.show();
 }
catch (Exception e1)
 {
   e1.printStackTrace();
 }

Below that I create my background thread to load some stuff and update the progress bar, but it never gets that far. In the stack trace I get "Unable to add window -- token null is not for an application", but the dialog seems (in the debugger) to have all the right things, it isn't null, but I'm getting this error.

Can anyone shine a light on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

做个少女永远怀春 2024-12-07 00:44:49

您使用什么类型的上下文来创建 ProgressDialog?

我认为 ProgressDialog 希望与 ApplicationContext 一起使用。 API 不太正确,构造函数应该请求 Activity 而不是 Context。

尝试将对 Activity 的引用而不是常规 Context 传递给构造函数。

而不是使用:

Context context = getApplicationContext();

use

Context context = this;

或者,如果您位于 Activity 的内部类(侦听器或任务)中,请使用:

Context context = MyActivityNameComesHere.this;

请参阅我的 Android Bugtracker 中关于此问题的问题

What kind of context are you using to create the ProgressDialog?

I think that the ProgressDialog want work with a ApplicationContext. The API is not very correct the constructor should request an Activity instead of a Context.

Try to pass a reference to a Activity to the constructor instead of an regular Context.

Instead of using:

Context context = getApplicationContext();

use

Context context = this;

Or if you are in an inner class of your Activity (a listener, or Task) use:

Context context = MyActivityNameComesHere.this;

See my Issue in the Android Bugtracker about this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文