设置对话框进度

2023-11-21

我有一个异步任务,在执行任务时不会添加百分比。它始终保持在 0% 0/100

这是我的代码

     private class getAppInfo extends AsyncTask<String, String, String> {
    /** The system calls this to perform work in a worker thread and
      * delivers it the parameters given to AsyncTask.execute() */
    ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        if(showLoading == true){
             dialog = new ProgressDialog(SelfHelp.this);
             dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
             dialog.setMessage("Loading");
             dialog.setIndeterminate(true);
             dialog.setCancelable(false);   
             dialog.setMax(100);
             dialog.setProgress(100);
             dialog.show();
        }
    }

    @Override
    protected String doInBackground(String... urls) {                       
        String xml = null;
        int count = 0;
        try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(urls[0]);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            xml = EntityUtils.toString(httpEntity);

            while(count != 100){
                publishProgress(""+count);
                count += 5;
            }

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }                                

        Document doc = parser.GetDomElement(xml);
        NodeList nl = doc.getElementsByTagName("topic");
        getChildElements(nl);                           
        return xml;
    }


    @Override
    protected void onProgressUpdate(String... progress) {
        Log.v("count",progress[0]);
        dialog.setProgress(Integer.parseInt(progress[0]));
   }

    /** The system calls this to perform work in the UI thread and delivers
      * the result from doInBackground() */
    @Override
    protected void onPostExecute(String result) {    
        //dialog.setProgress(100);
        menuList.setAdapter(setListItems(menuItems));
        menuList.setTextFilterEnabled(true);
        if(showLoading == true){
            dialog.dismiss();
            showLoading = false;
        }
    }

它确实进入onProgressUpdate并且计数增加了 5,但进度条没有改变。我怎样才能让它增加 5 并正确显示进度?


您的问题与setIndeterminate(true): 你应该将其设置为false如果你想有进度更新。如果你setIndeterminate(true)那么 ProgressDialog 将像经典的 Windows 沙漏一样工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置对话框进度 的相关文章

随机推荐

  • Code Golf:重复文本的“颜色突出显示”

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 感谢下面的 greg0ire 帮助理解关键概念 挑战 构建一个程序来查找所有子字符串并使用颜色属性 标记 它们 在 XML 中有效
  • 将单个 Excel 工作表另存为 CSV

    我需要解析 Excel 工作表 现在 我将每个单独的工作表另存为 csv 效果非常好 我使用 OpenCSV 来解析文件等 但创建这些 csv 文件很痛苦 在 Excel 中将单个工作表另存为 csv 的最简单 最快捷的方法是什么 我假设某
  • 使用 Shadow DOM 有哪些缺点?

    在教程中我只看到了 Shadow DOM 的优点 但也应该有缺点 在哪些情况下我们应该避免使用 Shadow DOM Shadow DOM 功能既可以被视为优点 也可以被视为缺点 风格隔离如果您想要的话 这是一个好处 但如果用户想从全局 C
  • 从预处理器中的常量中删除强制转换

    背景 在微控制器代码中 我使用生产商提供的库 其中定义了许多常量 如果我的一些常量 与微控制器外部的组件共享 与git subtree 和微控制器常数 例如 该库定义 ifdef SOME PARTICULAR MODEL define F
  • SSRS 2008 R2 - SSRS 2012 - ReportViewer:在 Safari/Chrome 中报告,但在 Firefox/Internet Explorer 8 中工作正常...为什么?

    我有一些简单的报告SSRS 2008 R2 但它们根本不会在 Safari 或 Chrome 中显示 根据微软的在线图书 这些浏览器的支持方式有限 但是 数据 加载 时钟完成后我看不到任何内容 页面顶部的参数栏和面包屑导航部分都在那里 此外
  • 仍然对 Python 中的可变默认参数值“陷阱”感到困惑[重复]

    这个问题在这里已经有答案了 我知道不应该使用可变的默认参数值在 Python 中 有一些例外 因为该值仅在定义函数时计算和存储一次 而不是在以后每次调用函数时计算和存储 我对此的理解是这样的 使用下面的例子 请原谅我的不精确的语言 因为我只
  • 仅将 dropShadow 添加到网格窗格 JavaFx 2.2 的边框

    只想将阴影添加到网格窗格的边框而不是内部子元素 here is the image of screen showing the effect 使用 StackPane 并将 GridPane 放入其中 使用 CSS 设置 StackPane
  • 动态改变colors.xml的值来改变android应用程序的外观和感觉

    问题 我正在尝试动态更改 Android 应用程序的外观和感觉 例如 应用程序启动并从服务器获取一组值 这些值是通常位于colors xml 中的元素 我正在寻找的是一种动态更改colors xml 中的元素并使用从服务器接收到的这些新值进
  • 如何使用 Delphi 中的当前区域设置格式化整数

    var i integer i 1234567 鉴于上述情况 我希望字符串 1 234 567 作为输出 假设英国区域设置 IntToStr 只是给我 1234567 我确信有一个单行线可以解决这个问题 但我找不到它 尝试格式化功能 Lab
  • 如何保留嵌入小部件的样式?

    如何制作外部PHPwidget页面有自己的CSS 问题是 当外部页面是included 它受到样式表的影响host page 包含的页面实际上是一个注释 小部件 带有自己的 css 文件 大约 30 行 不多 并且高度和宽度的灵活性是必须具
  • 如何将Jupyter笔记本上的环境切换为新笔记本?

    我有一个具有各种环境的实例 有些笔记本与不同的环境兼容 例如notebook1 用于 MXNet notebook2 用于 Tensorflow 从notebook1移动到notebook2时如何跳转到新环境 我尝试这样做 但这不适用于 J
  • 是否可以使用与 std::set 中包含的类型不同的元素来执行搜索和删除?

    假设我有以下内容 struct MetadataThingy void actual thingy int some metadata int more metadata bool operator lt MetadataThingy co
  • @media print 的 CSS 第 x 页(共 y 页)

    我将在这个问题的前言中说 我知道这个问题之前已经被问过 但我能找到的所有答案似乎都引用了一个不再有效的过时的解决方案 至少在 Firefox 56 64 位 中 过时的方法是 曾经有一个自动实例化的 CSS 计数器 名为pages 因此从该
  • 向每个团队成员发送成功自动化构建的通知

    我们只是将 Visual Studio Team Services 集成为我们的新工作流程 并在提交到 master 的基础上设置自动构建 目前 承诺掌握并发起新构建的个人将在构建失败或成功时收到通知电子邮件 我们以为我们都会收到通知 但事
  • MVVM WPF ComboBox SelectedItem 绑定未在数据网格内激活

    在数据网格内操作时 我一直在努力保存组合框选定的值 当我制作没有数据网格的测试解决方案时 一切正常 上下文是与相关国家的人名 国家 地区存储在 xml 文件中 这是初始视图的快照 您可以在此处看到PersonList xaml 的重要部分
  • Java 包与 C++ 库

    In Java 有一种叫做package Does library in C 代表相同的含义 特别是在包含相关子句和使用受保护成员等术语中 Thanks 一个事物有不同的维度packageJava 中的意思 作为一个区分内部类名称与其他包中
  • 设计模式名称:从类级别获取类

    特别是在单元测试中 我们使用这种 设计模式 我称之为 从类级别获取类 框架测试 py class FrameWorkHttpClient object class FrameWorkTestCase unittest TestCase Su
  • “长度不能小于零。”在空白行上

    即使我注释掉发生错误的行 我仍然收到上述错误消息 知道是什么原因造成的吗 我尝试用测试值重写这些行 但仍然遇到相同的错误 这在调试模式下工作得很好 只有在部署中才会出现 原始代码 Line 21 string domain username
  • html5 画布中的运动 jpeg

    我正在尝试将运动 jpeg mjpeg 流 来自网络摄像头 包装到 html5 画布中 我知道 Safari 和 Chrome 对 mjpeg 具有本机支持 因此我可以将其放入img使其发挥作用 我想将它包裹在画布中的原因是我想对其进行一些
  • 设置对话框进度

    我有一个异步任务 在执行任务时不会添加百分比 它始终保持在 0 0 100 这是我的代码 private class getAppInfo extends AsyncTask