В настоящее время я использую MapActivity в своем приложении. Я использую его с двумя ключами API. Один для отладки, а другой для «производства»
Мне надоело изменять эти значения в макете xml:
<view class="com.google.android.maps.MapView"
android:id="@+id/myGmap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="@string/api_key_prod" />
Мне надоело каждый раз менять apikey и заменять prod путем отладки каждый раз.
Можно ли изменить этот ключ в onCreate () моего приложения.
Представьте, что у меня есть логическое предпочтение, которое выглядит примерно так: isDebug.
Я могу проверить это предпочтение на мой телефон и отключите его по умолчанию в пользовательском приложении. и сделайте что-то вроде:
if (isDebug)
myMap.setApiKey(R.string.api_key_debug)
else
myMap.setApiKey(R.string.api_key_prod)
Большое спасибо за любую помощь.
Вы не можете одновременно иметь виджет в макете и установить ключ API в Java.
Если вы динамически создаете MapView
через его конструктор, вы можете передать ключ API таким образом из кода Java, но тогда вам нужно будет динамически добавить его в свой макет.
При этом я бы решил проблему через ваш процесс сборки (например, на основе отладочной / производственной сборки скопируйте правильный XML-файл в правильный каталог).