Вставка новой записи в календарь Android - PullRequest
1 голос
/ 28 сентября 2011

Я пытаюсь добавить новое событие в календарь Android. Вот код, который я использую

Intent intent = new Intent(Intent.ACTION_EDIT);
                    intent.setType("vnd.android.cursor.item/event");
                    intent.putExtra("title", event.getSummary());
                    intent.putExtra("description", event.getDescription());
                    intent.putExtra("eventLocation", event.getLocation());
                    intent.putExtra("dtstart", event.getStartDate());
                    if(event.getEndDate() == null)
                    {
                        intent.putExtra("allDay", true);
                    }
                    else
                    {
                        intent.putExtra("dtend", event.getEndDate());
                    }

                    startActivity(intent);

Я реализую этот метод в отдельном классе, который не является классом деятельности. Так что я расширяю класс активности здесь.

Когда я выполняю последнюю строку startActivity (намерение); Я получаю исключение Java nullpointer.

Не знаю, как поступить.

Как я могу добавить запись в календарь Android? Спасибо

1 Ответ

1 голос
/ 28 сентября 2011

Вы создаете экземпляр своего класса активности с new? Тебе этого не сделать. Классы активности должны быть созданы операционной системой, чтобы быть функциональными.

Решение:

Вы должны иметь ссылку на Context, чтобы позвонить context.startActivity(..). Передайте экземпляр контекста вашему классу в конструкторе. Подсказка: все действия являются контекстами, поэтому просто выполните new MyClass(this) из действия.

Кроме того, вашему классу не нужно расширять Activity.

...