Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Hank
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 320
1

Какой метод срабатывает при повторном показе фрагмента

24.03.2015, 10:47. Просмотров 563. Ответов 2
Метки нет (Все метки)

Доброго...

Имею несколько фрагментов, работаю с ними так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 if (fragmentManager.findFragmentByTag(String.valueOf(idQuestion)) != null){
                fragment = fragmentManager.findFragmentByTag(String.valueOf(idQuestion));
                fragmentManager = getSupportFragmentManager();
                fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction
                        .show(fragment)
                        .hide(fragmentManager.findFragmentByTag(String.valueOf(lastQues)))
                        .commit();
            }
            else {
                switch (typeQuestion) {
                    case 0:
                        fragment = new FragmentTestOneType();
                        break;
                    case 1:
                        fragment = new FragmentTestTwoType();
                        break;
                    case 2:
                        fragment = new FragmentTestThreeType();
                        break;
                    case 3:
                        fragment = new FragmentTestFourType();
                        break;
                    case 4:
                        fragment = new FragmentTestFiveType();
                        break;
                    case 5:
                        Intent intent = new Intent(getBaseContext(), FormTotalTest.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(intent);
                        break;
                    default:
                        fragment = new FragmentCheckTest();
                        break;
                }
                if (fragment != null) {
                    fragmentManager = getSupportFragmentManager();
                    fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.add(R.id.frameFragment, fragment, String.valueOf(idQuestion)).commit();
                    fragments.put(idQuestion, fragment);
                } else {
                    // Error
                    Log.e(this.getClass().getName(), "Error. Fragment is not created");
                }
 
            lastQuestion = idQuestion;
При повторном показе фрагмента нужно обновлять кое-какую информацию в нем, с этим возникли сложности. Я не могу отследить какой метод выполняется при повторном показе. Пробовал дебагером пробежаться, но он нигде не остановился. onResume похоже не срабатывает. Можете подсказать существует ли такой метод, который вызывается при повторном показе фрагмента?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2015, 10:47
Ответы с готовыми решениями:

Какой метод фрагмента срабатывает после закрытия диалога?
Запускаю FragmentActivity, в методе onResume запускаю DialogFragment. Пока выполняются кое-какие...

Не срабатывает функция при повторном нажатии
При нажатии на кнопку СЕНД (если не заполнено поле) выводится сообщение--Внимание вы не заполнили...

При повторном нажатии на кнопку не срабатывает событие
добрый день товарищи! такая проблема, при запуске программы, на форме нажимаю кнопку, выходит...

При повторном клике на кнопку не срабатывает jquery событие
Здравствуйте, специалисты. Обращаюсь за помощью. При клике на кнопку "Показать" появляется скрытый...

Не срабатывает SendKeys при повторном нажатии горячих клавиш
Здравствуйте, не срабатывает SendKeys при повторном нажатии горячих клавиш. Я понимаю, что дело в...

2
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.03.2015, 17:47 2
Java
1
2
3
4
5
6
7
8
9
@Override
public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    if (hidden) {
        //do when hidden
    } else {
       //do when show
    }
}
Вроде как, есть еще один метод:
Java
1
2
3
4
5
6
7
8
9
@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
            // Do your Work
        } else {
            // Do your Work
        }
    }
0
Gabberr
104 / 104 / 19
Регистрация: 13.10.2009
Сообщений: 405
24.03.2015, 17:56 3
Судя по коду фрагмент создается каждый раз заново, следовательно все методы будут вызываться повторно, можно завязаться на onCreate или onCreateView например.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2015, 17:56

Не срабатывает audio.play() при повторном нажатии (android)
Скажите пожалуйста, почему в браузерах opera и yandex на android не срабатывает audio.play() при...

DBGrid. Какое событие срабатывает при повторном нажатии на ячейку грида
Привет всем! Возник вопрос по работе с DBGrid'ом: Не могу понять, какое событие срабатывает при...

При клике на ссылку в Хроме код срабатывает только при повторном клике
При клике на ссылку в Хроме код срабатывает только при повторном клике в мазили работает корректно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.