2010-10-31 5 views
1

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

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

Спасибо,
Jengerer

ответ

1

В учебнике, шаг 2 (раздел OnCreate) они экземпляр HelloItemizedOverlay:

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable); 

Но обратите внимание, что в конструкторе HelloItemizedOverlay, он принимает растяжимый и контекст :

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

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

+0

Правильно, я пробовал это, и это не сработало, но я понял, что они также оставили строку, которая инициализировала 'ArrayList', поэтому она рушилась даже с этим исправлением. Благодаря! – Jengerer

+0

А, я просто сосредоточился на проблеме Контекста, даже не заметил этого. Рад, что я мог частично помочь! – Snailer

0

public HelloItemizedOverlay (Drawable defaultMarker, контекст контекста) { super (boundCenterBottom (defaultMarker)); mContext = context; }

0

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

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

Смежные вопросы