Intereting Posts
Как выполнить проверку подлинности в Google Talk с помощью токена аутентификации AccountManager с помощью Smack API? Каковы шаги для получения уведомления устройством Bluetooth Low Energy (BLE)? Имя месяца появляется с номером M + в диалоговом окне datePicker в android Обновление содержимого recyclerview не работает в нижнем листе Android ImageButton – невозможно получить изображение в центре Службы Google Play с помощью AdMob. Проверить наличие свободных мест? Распечатать текущий задний стек в журнале Повтор фонового изображения для Android Разработка приложения похожа на «Google сейчас» – возможно ли использовать распознавание голоса без ввода ключа? Java.lang.RuntimeException: выполнение остановки активности, которая не возобновляется в android Как установить кнопку контроллера мультимедиа на панели уведомлений? Android-манипулирование событиями, когда отображается меню Sipdroid – другой входящий вызов не отображается, пока он продолжается Создавайте бесплатные / платные версии приложения из того же кода Android weightSum не работает должным образом

Заменить getMap с помощью getMapAsync

Я хочу заменить устаревший метод getMap с помощью getMapAsync , но я не использовал MapFragment но GoogleMap :

 private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map); try { if(googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); } googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); googleMap.setMyLocationEnabled(true); googleMap.setTrafficEnabled(true); googleMap.setIndoorEnabled(true); googleMap.setBuildingsEnabled(true); googleMap.getUiSettings().setZoomControlsEnabled(true); 

Если я заменил googleMap на MapFragment таким образом, я больше не смогу setMapType и так далее. Итак, как я могу изменить getMapAsync в моем случае?

 MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); 

Solutions Collecting From Web of "Заменить getMap с помощью getMapAsync"

Как и в официальном документе, для получения асинхронной карты требуется обратный вызов; Это ваша «главная точка входа» для Google Maps!

 public class MapPane extends Activity implements OnMapReadyCallback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_activity); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { //DO WHATEVER YOU WANT WITH GOOGLEMAP map.setMapType(GoogleMap.MAP_TYPE_HYBRID); map.setMyLocationEnabled(true); map.setTrafficEnabled(true); map.setIndoorEnabled(true); map.setBuildingsEnabled(true); map.getUiSettings().setZoomControlsEnabled(true); } } 

Очень просто, просто выполните свою деятельность с OnMapReadyCallback интерфейса OnMapReadyCallback , а затем назначьте ссылку googleMap в onMapReady() .

Затем выполните любые действия в googleMap которые вы хотите.

Вот простой пример:

 public class MainActivity extends Activity implements OnMapReadyCallback { private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapFragment mapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { googleMap = map; setUpMap(); } public void setUpMap(){ googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); googleMap.setMyLocationEnabled(true); googleMap.setTrafficEnabled(true); googleMap.setIndoorEnabled(true); googleMap.setBuildingsEnabled(true); googleMap.getUiSettings().setZoomControlsEnabled(true); } } 

Если вы используете MapFragment, вы все равно можете использовать метод stMapType. Внесите OnMapReadyCallback в свою деятельность. Создайте MapFragment и вызовите метод getAsyncMap для этого объекта. Он попросит вас добавить метод onMapReady (Google Map), где вы можете установить тип карты и т. Д. Надеюсь, поможет.