четверг, 12 января 2012 г.

ProgressDialog в Android

Вы можете найти множество информации о диалогах в интернете. Возможно я не открою Вам что-то новое, но все же написать об этом стоит. Дело в том, что недавно я столкнулся с проблемой. Она заключается в том, что когда я запускаю ProgressDialog во второй и последующие разы, он как будто зависает (Не крутиться прогресс-колесо). И более того не обновляется сообщение в нем! Использовал я стандартный код:

private static final int PROGRESS = 0;

 @Override
   protected Dialog onCreateDialog(int id) {
       super.onCreateDialog(id);
       switch (id) {

                case PROGRESS:                
               ProgressDialog dialog = new ProgressDialog(this);
               dialog.setTitle("Please, wait...");                 
               dialog.setMessage(infoMsg);                 
               dialog.setIndeterminate(true);                 
               dialog.setCancelable(true);
               return dialog;
           default:
               return null;
       }
   }


Немного поэкспериментировав, я нашел выход из этой ситуации. Вместо использования "стандартного" кода, я использовал следующий:


public void StartProgressDialog(String msg){
 if(progressDialog==null) progressDialog = new ProgressDialog(this);
 progressDialog.setTitle("Please, wait...");          
 progressDialog.setMessage(msg);         
 progressDialog.setIndeterminate(true);          
 progressDialog.setCancelable(true);
 progressDialog.show();
}

И убираем его следующим образом:


public void StopProgressDialog(){
 if(progressDialog!=null){
 progressDialog.cancel();
 progressDialog.dismiss();
 progressDialog=null;
 }
}

Таким образом прогресс диалог всегда с нужным вам сообщением и прогресс-колесо крутится! :-)


Комментариев нет:

Отправить комментарий