Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
#1

Переход из уведомления в фрагмент активити - Программирование Android

27.09.2016, 23:20. Просмотров 347. Ответов 12
Метки нет (Все метки)

Здравствуйте.Вывожу уведомление в статус бар, нужно чтобы по нажатию на него открывался фрагмент активити.
Фрагменты использовал для шторки.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 FragmentTransaction ftrans = getFragmentManager().beginTransaction();
 
        if (id == R.id.nav_camera) {
         
            ftrans.replace(R.id.container, fimport);
        } else if (id == R.id.nav_gallery) {
            ftrans.replace(R.id.container, fgallery);
 
        } else if (id == R.id.nav_slideshow) {
 
            ftrans.replace(R.id.container,ftri);
 
        } else if (id == R.id.nav_manage) {
 
        } else if (id == R.id.nav_share) {
 
        } else if (id == R.id.nav_send) {
 
        }ftrans.commit();
В других местах нужный мне фрагмент вызывал так.
Java
1
2
3
4
 
        FragmentTransaction ftrans = getFragmentManager().beginTransaction();
        ftrans.replace(R.id.container, fimport);
        ftrans.commit();
Но в уведомлениях так не получается, пробывал вот так,
Java
1
  Intent notificationIntent = new Intent(context, MainActivity.class);
но это работает только вызывает главное активити.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2016, 23:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переход из уведомления в фрагмент активити (Программирование Android):

Переход через фрагмент на активити - Программирование Android
Добрый день ! Какой код должен быть чтобы на "активити 1" с открытым фрагментом , на котором есть кнопка при нажатии на которую активити1...

Выбор активити из уведомления - Программирование Android
Добрый день. Есть у меня главная активити, которая, в общем-то, работатет в фоне и бросает уведомления. Проблема в том, что есть...

Из Активити в Фрагмент - Программирование Android
Как передать данные из активити в фрамгент? пробую так но выкидывает из приложения Fragment f =...

Активити и фрагмент - Программирование Android
в фрагменте у меня есть функция public void setBmp(Bitmap bmp) { } в активити я использую Fragment f =...

Фрагмент сжимается в активити - Программирование Android
Первый раз такое встречаю, магия какая-то, может я чего-то еще не знаю. Вот код фрагмента: <?xml version="1.0" encoding="utf-8"?> ...

Доступ из активити в фрагмент - Программирование Android
Здравствуйте, такой вопрос есть активити import java.io.File; import java.io.IOException; import...

12
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
28.09.2016, 00:59 #2
Ну а что мешает в onCreate Activity установить фрагмент? Если нужно запустить не фрагмент по умолчанию для активити, а другой, то можно в notificationIntent добавить что-то типа:

Java
1
notificationIntent.putExtra(EXTRA_ID, FRAGMENT_ID);
Потом в onCreate выловить его и соответственно выставить нужный фрагмент...
0
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
28.09.2016, 09:20  [ТС] #3
OlegJV, oncreate Activity я другой фрагмент вызываю вот так.По другому не получалось.
Java
1
2
3
        FragmentTransaction ftrans = getFragmentManager().beginTransaction();
        ftrans.replace(R.id.container, fimport);
        ftrans.commit();
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
28.09.2016, 09:23 #4
И в чем проблема?
0
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
28.09.2016, 09:27  [ТС] #5
OlegJV, не получится установить на акиивити фрагмент. Тогда придётся предыдущий удалять.
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
28.09.2016, 09:49 #6
Цитата Сообщение от Zyf21 Посмотреть сообщение
Тогда придётся предыдущий удалять
В каком смысле? А ты как хочешь - один поверх другого?
0
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
28.09.2016, 09:57  [ТС] #7
OlegJV, нее.Просто в oncreate при старте приложения уже вызывается один фрагмент. А сейчас я хочу вызвать другой фрагмент при нажатии на уведомление в статус баре.Вы говорите его тоже нужно в oncreate прописать.И они будут одновременно вызываться, ведь при старте сначало запускается то что в oncreate.Или я что то не так понял...
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
28.09.2016, 10:08 #8
Ты в интент добавишь переменную. В onCreate проверка - если переменная в интенте есть, значит активити запущена из уведомления, загружаем один фрагмент. Если переменной нет - загружаем другой.

Добавлено через 3 минуты
Хотя переменная это неправильное название

Добавлено через 2 минуты
Типа bundle это будет
0
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
28.09.2016, 19:33  [ТС] #9
OlegJV, ага, теперь смысл понятен.Будем разбираться что за bundle такой.

Добавлено через 9 часов 14 минут
OlegJV, в onCreate проверка на нужный фрагмент будет что то типо такого?
Java
1
2
3
4
5
6
7
8
9
10
11
        int id = item.getItemId();
 
        FragmentTransaction ftrans = getFragmentManager().beginTransaction();
 
        if (id == R.id.nav_camera) {
 
            ftrans.replace(R.id.container, fimport);
        } else if (id == R.id.nav_gallery) {
            ftrans.replace(R.id.container, fgallery);
        }
        ftrans.commit();
Только все равно не понимаю как получить id, там вроде метод какой то нужен еще.
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
28.09.2016, 23:47 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Intent это такая штука, в которую можно засунуть какие-нибудь данные, типа "строка" - "значение".
Типа так (в уведомлении):

Java
1
2
Intent notificationIntent = new Intent(context, MainActivity.class);
notificationIntent.putExtra("fragmentId", 123);
А потом получить эти данные, в данном случае в onCreate активити:

Java
1
2
3
4
5
Intent intent = getIntent();
int id = intent.getIntExtra("fragmentId", 0);
        if (id == 123) {
            // ставим нужный фрагмент
        }
1
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
29.09.2016, 00:06  [ТС] #11
OlegJV, спасибо огромное. Все работает. Скажите пожалуйста, а где можно побольше об этом почитать, искать статью про intent или про фрагменты?
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
29.09.2016, 01:00 #12
Вообще-то читать про все надо))
0
Zyf21
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 164
29.09.2016, 12:05  [ТС] #13
OlegJV, ну это ясно)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2016, 12:05
Привет! Вот еще темы с ответами:

Активный фрагмент внутри активити - Программирование Android
Всем привет. Есть активити с content_frame, есть фрагмент. В Activity фрагмента gridView При старте фрагмента приложение вылетает с...

Передать SearchView из активити во фрагмент - Программирование Android
У меня есть SearchView в активити и тесть фрагмент который запускается через транзакцию. И как мне правильно передать SearchView из...

Что лучше использовать фрагмент или активити - Программирование Android
Ребят всем привет. Появился проект и возник некоторый вопрос, сейчас попробую описать. В проекте есть navigation view, и к нему нужно...

Переход между активити - Программирование Android
Есть переход с одной на другую при помощи кнопки, как реализовать выплывающее окно сбоку?


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
29.09.2016, 12:05
Ответ Создать тему
Опции темы

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