Intereting Posts
Android Dex: Невозможно выполнить DX Android Build Target нельзя выбрать в eclipse Как скрыть кнопки «Навигация» и «GPS-указатель», когда я нажимаю маркер на карте андроида google Есть ли способ сократить время загрузки Android-эмулятора с поддержкой Android SDK BeginTransaction (), endTransaction () и setTransactionSuccessful (). Что именно они делают? Какая часть Java 6 API реализована Android? Вложенный внутренний класс активности в android Запретить изменение ориентации Live Wallpaper при открытии приложения и изменении ориентации? Что такое недопустимый регион в Android? Нажмите на уведомление GCM, не открывая желаемую активность в Android Kitkat Замена EventBus на подписчиков RxJava – N, всегда прослушивающих Android – невозможно получить значение из EditText внутри пользовательского диалога C2DM для облачных сообщений Google (GCM) Как запустить мобильное приложение из приложения для ношения? Как изменить тип и размер CollapsingToolbarLayout?

Android: как отключить элементы управления во время выполнения, активен

Я показываю свой текущий индикатор выполнения в панели действий «как обычно»:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); ... setProgressBarIndeterminateVisibility(true); ... setProgressBarIndeterminateVisibility(false); 

И реальная работа выполняется в фоновом потоке (AsyncTask)

Проблема: все элементы управления в пользовательском интерфейсе включены, поэтому пользователь может продолжать изменять базовые данные до завершения длительного процесса.

Простое отключение всех элементов управления невозможно, так как при отключении EditText клавиатура автоматически закрывается Android.

Любые идеи, как предотвратить ввод пользователя во время работы?

Благодаря,

Крис

Solutions Collecting From Web of "Android: как отключить элементы управления во время выполнения, активен"

Что вы можете сделать, так это открыть невидимый диалог и не дать ему отказаться. Он покажет все, что находится под ним, но отключит все основные пользовательские взаимодействия. Затем, как только вы закончите свой бизнес, вы просто уволите его и продолжаете свою жизнь:

 Dialog mOverlayDialog = new Dialog(mContext, android.R.style.Theme_Panel); //display an invisible overlay dialog to prevent user interaction and pressing back mOverlayDialog.setCancelable(false); mOverlayDialog.show(); 

Попробуйте поставить progressDialog.setcancelable(false);

Вы пытаетесь установить только свойство Activity. Вместо этого создайте диалог с помощью ProgressDialog, чтобы Ui не был доступен

 ProgressDialog dialog = ProgressDialog.show(this, "", "Please wait...", true); 

Изменить: если вы не хотите использовать ProgressDialog, получите Root Layout и вызовите

 layout.setEnabled(false) 

В случае, если кто-то другой столкнулся с той же проблемой,

Для отключения редактирования текста: EditText.setFocusable(false);

Для редактирования: EditText.setFocusableInTouchMode(true);