通过单击按钮,将加载进度条

时间:2011-10-12 06:39:46

标签: android progress-bar

我已经创建了android应用程序。在这个程序中我正在使用进度条。我将进度条的代码放在xml布局中。我的问题是,当我点击按钮后,只加载了progreessbar,但它会在点击按钮之前显示..请告诉一些想法..谢谢提前..

2 个答案:

答案 0 :(得分:2)

为ProgressBar元素设置android:visibility和android:id属性。

android:visibility="gone" android:id="@+id/your_prg_bar_id"

对于按钮,单击添加属性。机器人:的onClick

android:onClick="showProgressBar"

在您的活动中编写方法showProgressBar以显示progressBar。

public void showProgressBar(View source){

  progressBar = (ProgressBar) findViewById(R.id.your_prg_bar_id);
  progressBar.setVisibility(View.VISIBLE);
}

答案 1 :(得分:1)

试试这个:: AsyncTask可以正确,方便地使用UI线程。该类允许执行后台操作并在UI线程上发布结果,而无需操纵线程和/或处理程序。

异步任务由在后台线程上运行的计算定义,其结果在UI线程上发布。异步任务由3种泛型类型定义,称为Params,Progress和Result,以及4个步骤,称为onPreExecute,doInBackground,onProgressUpdate和onPostExecute

    private class xyz extends AsyncTask<Void, Void, Void> {
        private final ProgressDialog dialog = new ProgressDialog(tranning.this);
        protected void onPreExecute() {
          this.dialog.setMessage("Please Wait...");
          this.dialog.show();
          // put your code which preload with processDialog  
          @Override
          protected Void doInBackground(Void... arg0) {
               // put your code here
               return null;
          }

         @Override
         protected void onPostExecute(final Void unused) {
            if (this.dialog.isShowing()) {
            this.dialog.dismiss();
         }   
      }
  }

并在按钮点击事件::

中使用此功能
 new xyz().execute();