Вставка новой записи в календарь Android

Я пытаюсь добавить новое событие в календарь 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(intent); Я получаю исключение нулевого указателя Java.

Не знаю, как действовать.

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


person Zach    schedule 28.09.2011    source источник


Ответы (1)


Вы создаете экземпляр своего класса активности с помощью new? Ты не можешь это делать. Классы активности должны быть созданы ОС, чтобы они работали.

Решение:

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

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

person Peter Knego    schedule 28.09.2011