Как я могу заставить блокировку перерисованного элемента пользовательского интерфейса?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу заставить блокировку перерисованного элемента пользовательского интерфейса?

Сообщение Anonymous »

У меня есть простая страница входа, где пользователь вводит пароль, и этот пароль используется для расшифровки некоторых данных и создания основной деятельности. Процесс генерации ключа, вызов базы данных и создания основной деятельности занимает около 5 секунд, поэтому я хочу показать колесо прогресса на экране входа в систему сразу после того, как пользователь нажимает кнопку входа в систему. Кажется, я не могу найти способ заставить блокирующее пользовательское обновление для вида в Android. Invalidate () < /code> и postinvalidate () < /code> оба не будут работать, поскольку они просто уведомит Android о том, что в какой-то момент в будущем должен произойти перераспределение.

Код: Выделить всё

        try {
progressBar.setVisibility(View.VISIBLE);
passwordEditText.setEnabled(false);

Key key = doLogin(passwordEditText.getText()); // Long operation

Intent intent = new Intent(getActivity(), MainActivity.class);
intent.putExtra("Key", key);
startActivity(intent);

getActivity().finish();

} catch (Exception e) {
passwordEditText.setError(getString(R.string.login_error));
Log.e("Login", e.getMessage());
} finally {
progressBar.setVisibility(View.INVISIBLE);
passwordEditText.setEnabled(true);
}
Если невозможно переопределить поведение по умолчанию и привести к немедленной блокировке перерыво>

Подробнее здесь: https://stackoverflow.com/questions/567 ... ui-element
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»