【问题标题】:Android ProgressDialog with setContentView带有 setContentView 的 Android ProgressDialog
【发布时间】:2010-12-04 00:40:31
【问题描述】:

我已经阅读了很多关于此的内容,但看不到任何曾经做过或尝试过的人。

所以我有一个扩展 ImageView 的对象,然后在其中我调用一个进度对话框并将进度对话框的内容设置为 imageview(即尝试在 imageview..view 中绘制进度对话框。)

    loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView        
    loadingProgressDialog.setIndeterminate(true);
    loadingProgressDialog.show();

我得到错误:在添加内容之前必须调用 requestFeature()

现在我之前在大量帖子中看到过这个错误,是的,答案似乎很明显。我已尝试设置所有功能:

loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

但首先我不明白我为什么需要这个?其次,它们都不起作用!

所以问题是我可以将 ProgressDialog contentView 设置为 ImageView 吗?如果是这样,我做错了什么?

【问题讨论】:

    标签: android imageview progressdialog custom-view


    【解决方案1】:

    我做到了; 事实上,这很容易;使用

    loadingProgressDialog.setContentView(this) 
    

    之后

    loadingProgressDialog.show() 
    

    以下代码行是不必要的:

    loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    

    也就是说:

    loadingProgressDialog.setIndeterminate(true);
    loadingProgressDialog.show();
    loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView 
    

    这就够了。

    我希望这可以帮助其他人寻找这个问题的答案。

    【讨论】:

    • 奇怪,将 setContentView() 放在 .show() 之后让它在我的情况下工作。有趣的。谢谢!
    • 哇哦!永远猜不到 setContentView 会放在 .show() 之后
    • 这绝对是问题的正确答案。
    【解决方案2】:

    如果您阅读 progressDialog 开发者文档,它会说“显示进度指示器和可选文本消息或视图的对话框。只能同时使用文本消息或视图。”

    看起来你正试图同时做这两个。可能是您的问题的原因。

    【讨论】:

    【解决方案3】:

    知道了。

    线索在类名中,当你不需要对话框时不要使用 ProgressDialog (http://developer.android.com/reference/android/app/ProgressDialog.html)!

    我将实现更改为使用:ProgressBar (http://developer.android.com/reference/android/widget/ProgressBar.html),效果很好。

    无论如何,为耳朵干杯!

    这就是我寻找它的原因:

    http://www.anddev.org/novice-tutorials-f8/imageview-with-loading-spinner-t49439.html

    教程展示了如何在加载图像时使用 Spinner。享受

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多