При нажатии на кнопку будет загружен индикатор выполнения. - PullRequest
0 голосов
/ 12 октября 2011

У меня есть приложение для Android. В этой программе я использую индикатор выполнения .. Я поместил код для индикатора выполнения в макет xml.Моя проблема заключается в том, что когда я нажимаю кнопку, после этого загружается только панель progreessbar, но она будет отображаться перед нажатием кнопки. Пожалуйста, расскажите об этом. Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

Установить атрибуты android: видимость и android: id для элемента ProgressBar.

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

Для нажатия кнопки добавить атрибут.android: 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 голос
/ 12 октября 2011

попробуйте это :: AsyncTask позволяет правильно и легко использовать поток пользовательского интерфейса. Этот класс позволяет выполнять фоновые операции и публиковать результаты в потоке пользовательского интерфейса без необходимости манипулировать потоками и / или обработчиками.

Асинхронная задача определяется вычислением, которое выполняется в фоновом потоке и результат которого публикуется в потоке пользовательского интерфейса. Асинхронная задача определяется 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...