草庐IT

android - 无法关闭进度对话框

coder 2023-12-25 原文

这是我的代码段,我试图关闭对话框,但它没有被关闭,而且我在 logcat 上也没有收到任何错误。请纠正我哪里错了?

所有 Log.v 语句都被执行。即使是 pd.dismiss() (Log.v("TAG","progress dismiss");) 之后的 log.v 语句也被打印出来。

请指出我的错误或建议一些替代方法来关闭进度对话框。

 btnSave.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View arg0) {

                        // TODO Auto-generated method stub
                        //do something
                        } else {
                            Log.v("TAG","above progressDialog");
                            final ProgressDialog pd = new ProgressDialog(ChangePassword.this);
                            ProgressDialog.show(ChangePassword.this, "", "Loading...", false, true);
                            new Thread() {
                                public void run() {
                                    try {                               
                                        sleep(2000);
                                        Log.v("TAG","in try block");
                                    } catch (Exception e) {
                                        Log.e("tag", e.getMessage());
                                    }
                                    // dismiss the progress dialog
                                    pd.dismiss();
    //                              Log.v("TAG","progress dismiss");
                                }
                            }.start();
                            Log.v("TAG","after start");


                             public void run()
                             {
                                 try{

                                     if (!(txtOldPass.getText().toString())
                                            .equals(SetGetValues.getPassword())) {

                                        Toast.makeText(ChangePassword.this,
                                                "Invalid Old Password", Toast.LENGTH_SHORT)
                                                .show();
                                        txtOldPass.setText("");
                                        txtNewPass.setText("");
                                        txtCnfPass.setText("");
                                    } else {
                                        if (!(txtNewPass.getText().toString())
                                                .equals(txtCnfPass.getText().toString())) {
                                            Toast.makeText(ChangePassword.this,
                                                    "Re-Enter New Password",
                                                    Toast.LENGTH_SHORT).show();
                                            txtOldPass.setText("");
                                            txtNewPass.setText("");
                                            txtCnfPass.setText("");
                                        } else {
                                            try {

    handler = new Handler();
                         handler.postDelayed(new Thread (new Runnable(){
                                                JSONStringer loginuser = new JSONStringer()
                                                        .object()
                                                        .key("userid")
                                                        .value(SetGetValues.getUserid()
                                                                .trim())
                                                        .key("password")
                                                        .value(txtCnfPass.getText()
                                                                .toString().trim())
                                                        .key("oldpassword")
                                                        .value(txtOldPass.getText()
                                                                .toString().trim())
                                                        .endObject();
                                                StringEntity entity = new StringEntity(
                                                        loginuser.toString());
                                                JSONObject results = bc
                                                        .returnJSONObject(loginuser,
                                                                "url");

                                                String message = results
                                                        .getString("message");
                                                String isvalid = results
                                                        .getString("isvalid");
                                                if (isvalid.contains("FALSE")) {
                                                } else {
                                                    //pd.dismiss();
                                                    Toast.makeText(
                                                            ChangePassword.this,
                                                            "Password changed successfully",
                                                            Toast.LENGTH_SHORT).show();
                                                }
                                            } catch (Exception e) {
                                                 //TODO: handle exception
                                                e.printStackTrace();
                                            }
                                        }
                                    }
                             }catch(Exception e)
                             {
                                 e.printStackTrace();
                             }
                             }
                            }), 1000);


                        }
                    }

                });

最佳答案

您并没有关闭正在显示的同一个 ProgressDialog。替换为:

final ProgressDialog pd = new ProgressDialog(ChangePassword.this);
ProgressDialog.show(ChangePassword.this, "", "Loading...", false, true);

用这个:

final ProgressDialog pd = ProgressDialog.show(ChangePassword.this, "", "Loading...", false, true);

关于android - 无法关闭进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8076847/

有关android - 无法关闭进度对话框的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  5. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  6. ruby - 无法覆盖 irb 中的 to_s - 2

    我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)

  7. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  8. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  9. ruby-on-rails - 无法让 rspec、spork 和调试器正常运行 - 2

    GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'

  10. ruby - 如何关闭 ruby​​ gem "Spreadsheet?"中的文件 - 2

    下面的代码在我第一次运行它时就可以正常工作:require'rubygems'require'spreadsheet'book=Spreadsheet.open'/Users/me/myruby/Mywks.xls'sheet=book.worksheet0row=sheet.row(1)putsrow[1]book.write'/Users/me/myruby/Mywks.xls'当我再次运行它时,我会收到更多消息,例如:/Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:11

随机推荐