Сначала я совершенно новый для android. Я пытаюсь получить простую карту для изменения типа, и хотя я мог бы заставить mapType действовать как указатель, однако он появляется потому, что значение, которое использует изменения onCreate, не приводит к обновлению активности. Глядя на примеры в Интернете о меню, все они, похоже, запускают новые мероприятия, но я не думаю, что запуск нового мероприятия и закрытие старого звучат как лучшая практика. Так что мне интересно, как вы получаете активность, чтобы поднять изменения или отобразить карту, как обработчик, а затем я могу обновить карту?Изменить активность из меню
public class MainActivity extends Activity {
private int mapType = GoogleMap.MAP_TYPE_SATELLITE;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GoogleMap map = ((MapFragment) getFragmentManager()
.findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
// Other supported types include: MAP_TYPE_NORMAL,
// MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID and MAP_TYPE_NONE
map.setMapType(mapType);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int temp = item.getItemId();
Log.v(Integer.toString(temp), "is");
switch (item.getItemId()) {
case R.id.hybridSettings:
mapType = GoogleMap.MAP_TYPE_HYBRID;
return true;
case R.id.terrainSettings:
mapType = GoogleMap.MAP_TYPE_TERRAIN;
return true;
case R.id.normalSettings:
mapType = GoogleMap.MAP_TYPE_NORMAL;
return true;
}
return false;
}
}
Я не могу получить доступ к карте изнутри onOptionsItemВыбран для вызова setMapType. Поскольку карта создана в ocCreate –
Задайте карту referenece как частный атрибут вашего класса или вы можете получить фрагмент карты через FragmentManager. – greywolf82