0

I am trying to use an intentService from a fragment by using getSystemService which sets an alarm that send intent.But I am getting a nullpointer exception at getsystemservice due to null object reference.Also please help me to get a way to pass the time set to the main activity.

public class TimePickerFragment  extends DialogFragment implements TimePickerDialog.OnTimeSetListener{
      public int hour,minute,id;
    private AlarmManager alarmstart;
    private AlarmManager alarmstop;

    @Override
        public Dialog onCreateDialog(Bundle savedInstanceState){
        alarmstart = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
        alarmstop = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
            return new TimePickerDialog(getActivity(),this, hour, minute,
                    DateFormat.is24HourFormat(getActivity()));
        }

        public void identify(int identity){
            id=identity;
        }
        public void onTimeSet(TimePicker view, int hourOfDay, int minute){
            Calendar calendar = Calendar.getInstance();
            if(getActivity()!=null){
            Intent start =new Intent(getActivity(),starter.class);
            PendingIntent pi=PendingIntent.getService(getActivity(),0,start,0);
            Intent stop =new Intent(getActivity(),stopper.class);
            PendingIntent pi2=PendingIntent.getService(getActivity(),0,stop,0);
            switch (id) {
                case 1:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 2:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 3:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 4:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 5:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 6:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 7:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 8:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 9:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 10:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 11:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 12:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
                case 13:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);
                case 14:
                    calendar.setTimeInMillis(0);
                    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    alarmstart.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi2);
            }
            }
        }


}
Sandeep Bhandari
  • 19,999
  • 5
  • 45
  • 78
Axel
  • 1
  • 1
  • 1
    you should use onAttach to be sure your activity is attached to the fragment: http://stackoverflow.com/questions/6215239/getactivity-returns-null-in-fragment-function – Opiatefuchs May 17 '16 at 08:08
  • @Axel : Yes I think opiatefuchs observation is correct :) You should check if getActivity is returning your activity or not :) Try moving your code to either onAttach or onStart you can be confirmed that activity is attached to your fragment :) I guess that will stop your crash – Sandeep Bhandari May 17 '16 at 08:13

0 Answers0