Контекст по умолчанию для AlertDialog.Builder для просмотра карты? - PullRequest
1 голос
/ 31 октября 2010

Я пытался следовать этому руководству при использовании Google Map View в Android. Во второй части они создают переменную-член mContext и затем передают ее в AlertDialog.Builder(mContext), но конструктор, который они вызывают для создания экземпляра HelloItemizedOverlay, не создает экземпляр mContext, поэтому он просто остается null насколько я знаю.

Программа не работает должным образом, и выдает NullPointerException, как я и подозревал. Как это должно работать?

Спасибо
Jengerer

Ответы [ 3 ]

1 голос
/ 31 октября 2010

В руководстве, шаг 2 (раздел onCreate), они создают экземпляр HelloItemizedOverlay:

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);

Но обратите внимание, что в конструкторе HelloItemizedOverlay он принимает Drawable и Context:

public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
    super(defaultMarker);
    mContext = context;
}

Так что вина в учебнике.Они создают экземпляр класса без объекта Context, делая его нулевым.В вашем методе onCreate () просто добавьте this в конструктор.

0 голосов
/ 21 марта 2011

Создайте один конструктор для HelloItemizedOverlay, принимая два параметра: drawable и this.

Учебник звучит так, как будто вам нужно создать два конструктора для разного количества параметров.

0 голосов
/ 24 ноября 2010

public HelloItemizedOverlay (Drawable defaultMarker, Context context) { супер (boundCenterBottom (defaultMarker)); mContext = context; }

...