1

Пытаюсь вызвать метод и выдается исключение: что не так? Код работает так: проверяется массив image и присваив. слушатель, если нажали case R.id.b1: то играет музыка+я пытаюсь вывести уведомление

 NotificationManager manager;
    Notification myNotication;
    if (pageNumber == 1) {
                    View rootViewB = inflater.inflate(R.layout.fragment2, container, false);

                    for (int index = 0; index < buttonIds.length; index++) {
                        arr_imageB[index] = (ImageView) rootViewB.findViewById(buttonIds[index]);
                    }



                    for (int j = 0; j < arr_imageB.length; j++) {
                        arr_imageB[j].setOnTouchListener(new View.OnTouchListener() {

                            @Override
                            public boolean onTouch(View v, MotionEvent event) {
                                v.startAnimation(anim);
                                    switch (v.getId()) {
                                    case R.id.b1:
                                    {
                                        Notify();
                                                stopPlayerIfNeeded();
                                                playSample(soundsRawResIds[0]);
                                             }

                                        break;
                                    case R.id.b2:

                                    {
                                                stopPlayerIfNeeded();
                                                playSample(soundsRawResIds[1]);

                                            }

                                        break;
                                    case R.id.b3:
                                    {
                                                stopPlayerIfNeeded();
                                                playSample(soundsRawResIds[2]);

                                            }

                                        break;
                                    case R.id.b4:
                                    {
                                                stopPlayerIfNeeded();
                                                playSample(soundsRawResIds[3]);
                                             }

                                        break;
                                    case R.id.b5: {
                                        stopPlayerIfNeeded();
                                        playSample(soundsRawResIds[4]);
                                    }
                                        break;
                                    case R.id.b6: {
                                        stopPlayerIfNeeded();
                                        playSample(soundsRawResIds[5]);

                                    }

                                        break;
                                    case R.id.b7:
                                    {
                                                stopPlayerIfNeeded();
                                                playSample(soundsRawResIds[6]);

                                            }
                                    break;
                                }

                                return false;  }

                        });
                    }

                    return rootViewB;

                }

            }   

private void Notify() {
            Intent intent = new Intent(getActivity(),fragment2.class);

            PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), 1, intent, 0);

            Notification.Builder builder = new Notification.Builder(getActivity());

            builder.setAutoCancel(false);
            builder.setTicker("this is ticker text");
            builder.setContentTitle("WhatsApp Notification");
            builder.setContentText("You have a new message");
            builder.setSmallIcon(R.drawable.ic_play_circle_filled);
            builder.setContentIntent(pendingIntent);
            builder.setOngoing(true);
            builder.setSubText("This is subtext...");   //API level 16
            builder.setNumber(100);
            builder.build();
            myNotication = builder.getNotification();
            manager.notify(100, myNotication);
        }

Конкретно ругается на эту строчку: manager.notify(100, myNotication);

Еще логи:

ATAL EXCEPTION: main
                                                                               Process: com.example.navigate.viewpager1, PID: 4894
                                                                               java.lang.NullPointerException
                                                                                   at com.example.navigate.viewpager1.PageFragment.Notify(PageFragment.java:283)
                                                                                   at com.example.navigate.viewpager1.PageFragment.access$100(PageFragment.java:26)
                                                                                   at com.example.navigate.viewpager1.PageFragment$3.onTouch(PageFragment.java:130)
                                                                                   at android.view.View.dispatchTouchEvent(View.java:7701)
upward
  • 1,019

1 Answers1

1

Вы не инициализировали

NotificationManager manager;

И после его инициализации попробуйте так:

manager.notify(100, builder.build());
  • http://pastebin.com/ZT56q9HA Intent intent = new Intent(getActivity(),fragment2.class); PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), 1, intent, 0); данным кодом я при нажатии на ув. запускаю новый экземляр активити,а если мне нужно просто вернуть текущий,который не в фокусе – upward May 01 '16 at 08:08
  • @upward, вроде так: PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), 1, intent, Intent.FLAG_UPDATE_CURENT); – ЮрийСПб May 01 '16 at 09:13
  • @upward, не нужно в комментарии кидать ссылки на сторонние сайты. Лучше задайте новый вопрос и приведите там код текстом. ПастБин у меня, например, вообще не работает. – ЮрийСПб May 01 '16 at 09:47
  • извиняюсь PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), 1, intent, intent.FLAG_UPDATE_CURRENT); ругается Error:(276, 97) error: cannot find symbol variable FLAG_UPDATE_CURRENT – upward May 01 '16 at 09:57
  • @upward, попробуйте так: PendingIntent.FLAG_UPDATE_CURRENT – ЮрийСПб May 01 '16 at 09:59
  • пробовал так,однако, создается новая активность... – upward May 01 '16 at 10:10
  • @upward, добавьте для активити в манифест это: android:launchMode="singleTask" – ЮрийСПб May 01 '16 at 10:19
  • ничего не изменилось,прописал у того активити,которое вызываю – upward May 01 '16 at 10:33
  • @upward, должно работать... Задайте отдельный вопрос в коем опишите проблемы, покажите что вы пытались сделать и что не получилось. – ЮрийСПб May 01 '16 at 10:40