单击按钮时创建ProgressDialog

时间:2011-04-24 13:59:17

标签: android onclick progressdialog

当我点击à按钮时,我想弹出一个ProgressDialog。通过单击此按钮,它将开始解析XML文件并在ListView中显示结果。

我尝试了这个,但它不起作用:

// --- NEWS BUTTON
    OnClickListener newsButtonListener = new OnClickListener()
    {

      @Override
      public void onClick(View actuelView)
      {

        // Navigation to another screen
        Intent intent = new Intent(Lausanne_HC.this, NewsViewController.class);
        startActivity(intent);
        ProgressDialog dialog = ProgressDialog.show(Lausanne_HC.this, "", 
                  "Loading. Please wait...", true); 

      }

   };
   ImageButton newsButton = (ImageButton) findViewById(R.id.newsButton);
     newsButton.setOnClickListener(newsButtonListener);

我该怎么办?

由于

4 个答案:

答案 0 :(得分:1)

按钮单击

Button click = (Button) findViewById(R.id.button1); 
        click.setOnClickListener(new OnClickListener() { 

            public void onClick(View v) { 
                // TODO Auto-generated method stub 
                openprogresdialog(); 
            } 
        }); 

创建一个这个方法。

private void openprogresdialog() { 
        // TODO Auto-generated method stub 
        final ProgressDialog progDailog = ProgressDialog.show( 
                HidekeybordActivity.this, "Testing", "Please wait...", true); 

        new Thread() { 
            public void run() { 
                try { 
                    // xml parser code here put... 
                } catch (Exception e) { 
                } 
                progDailog.dismiss(); 
            } 
        }.start(); 
    } 

答案 1 :(得分:0)

通过使用Intent打开另一个Activity,Android将保留当前的Activity。如果您使用Intent打开的Activity是显示已解析数据的Activity,则应执行以下操作:

  1. 打开ProgressDialog
  2. 启动一个新线程来解析XML 文件
  3. 解析文件后,杀死 线程并使用Intent来显示 数据
  4. 我在几乎相同的主题上找到了this older thread

答案 2 :(得分:0)

您应该将生成ProgressDialog的代码放在被调用Activity的最开头。然后使用另一个线程来解析XML文件并生成ListView,在工作完成后,关闭ProgressDialog

所有这些代码都应该放在显示ListView的Activity中,因为ProgreeDialog会显示XML解析的进度。

答案 3 :(得分:0)

new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {

            /* Create an Intent that will start the Menu-Activity. */

            Intent mainIntent = new Intent(SplashScreenActivity.this,
                    FastMainActivity.class);

            SplashScreenActivity.this.startActivity(mainIntent);
            //overridePendingTransition(android.R.anim.slide_in_left,
                //  android.R.anim.slide_out_right);

            SplashScreenActivity.this.finish();

        }

    }, SPLASH_DISPLAY_LENGHT); // SPLASH_DISPLAY_LENGTH=3000