|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
|
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
|
РИФ Воронеж 2014 видео
2014-10-30 16:19:08 (читать в оригинале)Появилось видео с Воронежской конференции РИФ 2014. В том числе и с секции, в которой я рассказывал про Yii 2.0.
РИФ Воронеж 2014 видео
2014-10-30 15:19:08 (читать в оригинале)Появилось видео с Воронежской конференции РИФ 2014. В том числе и с секции, в которой я рассказывал про Yii 2.0.
Рекомендация HTML5
2014-10-29 15:00:38 (читать в оригинале)Наконец-то, рекомендация HTML5 официально закончена. На сайте W3C можно почитать официальный анонс.
- Полная спецификация
Рекомендация HTML5
2014-10-29 14:00:38 (читать в оригинале)Наконец-то, рекомендация HTML5 официально закончена. На сайте W3C можно почитать официальный анонс.
- Полная спецификация
Android: обрабатываем нажатие back в фрагментах
2014-10-28 16:20:12 (читать в оригинале)В Android-приложениях иногда требуется особым образом обработать нажатие кнопки back. Если у вас не используются фрагменты, всё просто. Перекрываем метод onBackPressed у Activity и делаем что нам нужно. Если же используются фрагменты и по нажатию back необходимо что-то поменять в фрагменте, обработку хочется сделать именно в нём.
Посмотрев ответы на эту тему на StackOverflow я был несколько удивлён. Предлагается либо ненадёжный способ через OnKeyListener, либо жёсткий хардкод. Попробуем сделать это более красиво и удобно.
Начнём с интерфейса для фрагментов. Готового в фреймворке нет, сделаем свой:
public interface OnBackPressedListener { public void onBackPressed(); }
Далее перекроем метод onBackPressed в нашем FragmentActivity:
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(); } } }
Вытаскиваем все фрагменты, которые у нас есть. Ищем первый попавшийся, который реализует наш интерфейс OnBackPressedListener. Тут можно было придумать что-то, чтобы работать с несколькими обработчиками, но чаще всего он один. Если есть фрагмент, который реализует OnBackPressedListener, вызываем его единственный метод. Если нет — обрабатываем back как обычно.
Ну и, наконец, сам фрагмент:
public class MyFragment extends Fragment implements OnBackPressedListener { @Override public void onBackPressed() { // полезный код } }
Плюс данного подхода в том, что можно, например, отнаследовать все наши activity от MyActivity и использовать OnBackPressedListener без каких-либо изменений в коде MyActivity.
|
| ||
|
+382 |
399 |
Follow_through |
|
+328 |
331 |
שימותו הקנאים |
|
+320 |
334 |
Tomas50 |
|
+317 |
357 |
krodico |
|
+307 |
359 |
Ланин Сергей |
|
| ||
|
-4 |
42 |
Similis_Deo |
|
-5 |
2 |
Dark Music in Your Heart | Dark Music in Your Heart |
|
-6 |
9 |
BrightBand |
|
-15 |
135 |
Музпросвет в мыслях |
|
-16 |
167 |
Trance Music - Транс музыка |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.
