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

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

Войти
Регистрация
Восстановить пароль
 
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
#1

Обработать нажатие на кнопки в уведомлении - Программирование Android

08.02.2016, 20:27. Просмотров 468. Ответов 9
Метки нет (Все метки)

Еще раз здравствуйте.

Дело такое.

Есть уведомление, в нем две кнопки. Они должны выполнять различные действия (вызов методов). Каким образом это можно организовать?

Реализовать для вызова активити разных я смог, а с методами не знаю, что делать.

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
public static void createPushWithIMG(Context ctx, int minutes, AlarmManagerBroadcastReceiver alarm)
    {
        NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
 
        Intent intent = new Intent(ctx, StopActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(ctx, 0, intent, 0);
 
        Intent intent2 = new Intent(ctx, PrefActivity.class);
        PendingIntent pIntent2 = PendingIntent.getActivity(ctx, 0, intent2, 0);
 
        // Строим уведомление
        Notification builder = new Notification.Builder(ctx)
                .setTicker("Хэй")
                .setContentTitle("Timer")
                .setAutoCancel(true)
                .setContentText(
                        "Выключение через " + minutes +" мин.")
                .setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent)
                .addAction(R.drawable.ic_launcher, "Отменить", pIntent)
                .addAction(R.drawable.ic_launcher, "Продлить", pIntent2)
                .build();
 
        // убираем уведомление, когда его выбрали
        builder.flags |= Notification.FLAG_AUTO_CANCEL;
 
        notificationManager.notify(0, builder);
    }
Спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработать нажатие на кнопки в уведомлении (Программирование Android):

Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ? - Программирование Android
У меня есть ListView, у него есть своя разметка на которой находится строчки на каждой из которых Button и textView. Как мне обработать...

Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер? - Программирование Android
Требуется помощь. Начал осваивать это все недавно. Расскажу суть идеи: создав проект в Android Studio, был выбран активити "Google AdMob...

Как обработать нажатие ImageView - Программирование Android
Создаю программу на Андроиде. И сразу столкнулся с проблемой. Почему то не получается... Создаю три объекта ImageView, и надо при нажатии...

Как обработать нажатие на ImageView? - Программирование Android
Ребят, не пойму в чем ошибка, как обработать нажатие на картинку? public class MainActivity extends ActionBarActivity implements...

Определить нажатие кнопки Home и кнопки сворачивания приложения - Программирование Android
По аналогии с backPressed: @Override public void onBackPressed() { }

Как обработать нажатие на изображение в элементе listView? - Программирование Android
Как все знают, listView делится на множество элементов, нажатия на них можно обработать... Но во многих listView помимо тескат часто...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 147
09.02.2016, 02:57 #2
Здравствуйте! Может создавать PendingIntent с помощью getBroadcast, а обрабатывать в onReceive класса, наследующего BroadcastReceiver, фильтруя actions? Главное не забыть в манифесте ресивер указать.
1
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,801
Завершенные тесты: 1
09.02.2016, 11:49 #3
непонятно о каких кнопках и методах идет речь, если честно
0
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 12:01  [ТС] #4
Паблито, Вот как на этой картинке

Собственно 2 кнопки.
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,801
Завершенные тесты: 1
09.02.2016, 12:11 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
что бы именно вызывать методы, сомневаюсь
но можно сделать так:
вот в коде выше по нажатию на кнопку вызывается какая-то активити через созданный интент
в этой активити можно переопределить метод
Java
1
2
3
4
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
    }
он будет вызываться когда активити запускается через интент, можно еще усложнить - в нотификейшене в интент добавлять setAction("MY_AWESOME_ACTION"); грубо говоря это просто строка
а в onNewIntent брать эту строку так intent.getAction() и дальше через switch-case условия запускать нужные методы

надеюсь понятно изложил
1
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:24  [ТС] #6
Паблито, да, спасибо.

Добавлено через 4 часа 11 минут
Паблито, а как в таком случае передать что-то в Activity? А быть точнее Context. Это возможно вообще? putExtra же вряд ли тут подойдет.
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,801
Завершенные тесты: 1
09.02.2016, 16:33 #7
Цитата Сообщение от HanDi Посмотреть сообщение
putExtra же вряд ли тут подойдет.
почему?
туда можно кучу всего напихать, а если это какие-то модели-объекты, можно например переводить в json и передавать как строки
1
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:39  [ТС] #8
Цитата Сообщение от Паблито Посмотреть сообщение
почему?
туда можно кучу всего напихать, а если это какие-то модели-объекты, можно например переводить в json и передавать как строки
Я попробовал context засунуть, не выходит

Мне туда нужно "запихать" вот эти чудеса, это возможно?

Context ctx
AlarmManagerBroadcastReceiver alarm
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,801
Завершенные тесты: 1
09.02.2016, 16:41 #9
если честно я не вникал в задачу, но если возникла необходимость передавать контекст или что-то такое сложное - значит что-то не так с архитектурой приложения

зачем в одной и той же программе передавать через интенты контекст?
он и так один на все приложение
0
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502
09.02.2016, 16:43  [ТС] #10
Паблито, там чудо с алармами, и чтобы его точно закончить мне как-то нужно было сохранить, приходится сейчас так извращаться, да уж, похоже будет легче сейчас переделать немного структуру проекта
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2016, 16:43
Привет! Вот еще темы с ответами:

Не получается обработать нажатие на кнопку Home в ActionBar - Программирование Android
в OnCreate прописал: ActionBar actionbar= getSupportActionBar(); actionbar.setDisplayHomeAsUpEnabled(true); Теперь хочу...

Реакция кнопки на нажатие - Программирование Android
Стандартная кнопка визуально реагирует на нажатие. А когда изменяешь фон кнопки, то всякая визуальная реакция исчезает. Как-то можно это...

Долгое нажатие кнопки - Программирование Android
Нужно выполнять действие по зажатию клавиши: есть кнопка увеличения громкости, при её зажатии звук увеличивается. Пробовал longClick -...

Не обрабатывается нажатие кнопки - Программирование Android
ImageView btn1 = new ImageView(this); btn1.setImageResource(R.drawable.gorod_cveta_button1); btn1.setLayoutParams(new...


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

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

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