Intereting Posts
Отправка sms нескольким людям в android Android Studio: не удается запустить Git Изображение, взятое из галереи, отображается в различной ориентации при использовании phonegap в android Хранить длинную стоимость в базе данных android Можете ли вы использовать admob во время alfa и бета-тестирования в google play? Сохранение конфиденциальных данных в React Native LinearAlloc превысила емкость (5242880), last = 1092 Ошибка при установке на моем планшетном устройстве Samsung Как получить другое имя версии приложения Android v21 Theme.Appcompat цветной акцент игнорируется, никаких дополнений в диалоговом окне Как построить проект apache cordova из командной строки? Аналогичная функция SwingUtilities.invokeLater в android? Как передать AttributeSet в пользовательский вид Класс должен быть либо объявлен абстрактным, либо реализовать абстрактный метод Как я могу обработать перенос карты с помощью Google Maps для Android V2? Как получить отдельную информацию о ценах и валюте для покупки в приложении?

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);