Контекст по умолчанию для AlertDialog.Builder для представления на карте?
-
27-09-2019 - |
Вопрос
Я пытался следовать Это руководство На использовании Google Map View в Android. Во второй части они создают mContext
переменная участника, а затем передать это в AlertDialog.Builder(mContext)
, но конструктор, который они призывают создать экземпляр HelloItemizedOverlay
не создает mContext
, Так что это просто осталось null
насколько я знаю.
Программа не работает должным образом и бросает NullPointerException
Как я подозревал. Как это должно работать?
Спасибо,
Jgerer
Решение
В руководстве шага 2 (раздел OnCreate) они создали администрирование HelloitemizedOverlay:
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);
Но обратите внимание, что в конструкторе HalloitemizedEmizeVerlay это берет на себя тяги и контекст:
public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
super(defaultMarker);
mContext = context;
}
Так что вина с учебником. Они создают урок без контекста объекта, делая его NULL. В вашем методе OnCreate () просто добавьте this
конструктору.
Другие советы
Общественные HelloitemizedemizedemlessOverlay (Drawablemarkmarkmarmer, контекст контекста) {Super (Bandcenterbottom (Defaultmarmarm)); mcontext = контекст; }
Создать один конструктор для HelloItemizedOverlay
Принимая два параметра: drawable
а также this
.
Учебное пособие звучит так, как вы должны сделать два конструктора для разного количества параметров.