我正在使用AS创建应用,我需要在TabHost的第三个标签中显示Google地图。我已经阅读了很多问题和教程,他们通常使用 ActivityGroup (不推荐使用)。我不能将Google地图代码放在我的MainActivity.java中,因为我已经从其他人那里扩展了:
public class MainActivity extends BaseActivity implements View.OnClickListener{
那么我怎么能解决这个问题呢? 如果不推荐使用ActivityGroup,我也会读到碎片,但如果我使用TabHost,这会有用吗?
提前致谢!
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
答案 0 :(得分:0)
我遇到的方法是使用FragmentTabHost并将MapFragment添加到其中。如果您在MainActivity中声明FragmentTabHost,则可能需要将Activity更改为FragmentActivity。我个人无法找到另一种方式。但是您应该能够将类更改为从FragmentActivity继承而不会有太多麻烦。
或者,您可以坚持使用视图并添加MapView而不是使用SupportMapFragment,但是SupportMapFragment将为您提供更多开箱即用的功能。