![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
![]()
Android: обрабатываем нажатие back в фрагментах2014-10-28 16:20:12 (читать в оригинале)В Android-приложениях иногда требуется особым образом обработать нажатие кнопки back. Если у вас не используются фрагменты, всё просто. Перекрываем метод Посмотрев ответы на эту тему на StackOverflow я был несколько удивлён. Предлагается либо ненадёжный способ через Начнём с интерфейса для фрагментов. Готового в фреймворке нет, сделаем свой: public interface OnBackPressedListener { public void onBackPressed(); } Далее перекроем метод public class MyActivity extends FragmentActivity { @Override public void onBackPressed() { FragmentManager fm = getSupportFragmentManager(); OnBackPressedListener backPressedListener = null; for (Fragment fragment: fm.getFragments()) { if (fragment instanceof OnBackPressedListener) { backPressedListener = (OnBackPressedListener) fragment; break; } } if (backPressedListener != null) { backPressedListener.onBackPressed(); } else { super.onBackPressed(); } } } Вытаскиваем все фрагменты, которые у нас есть. Ищем первый попавшийся, который реализует наш интерфейс Ну и, наконец, сам фрагмент: public class MyFragment extends Fragment implements OnBackPressedListener { @Override public void onBackPressed() { // полезный код } } Плюс данного подхода в том, что можно, например, отнаследовать все наши activity от
|
![]() ![]() ![]()
Категория «Музыка»
Взлеты Топ 5
Падения Топ 5
![]()
Популярные за сутки
|
Загрузка...
![Загрузка... Загрузка...](/themes/1/i/loader/loader.gif)
взяты из открытых общедоступных источников и являются собственностью их авторов.