Android Studio - 如何设置其他活动的标签内容?

时间:2016-03-14 11:10:17

标签: android google-maps android-tabhost

我正在使用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));
}

1 个答案:

答案 0 :(得分:0)

我遇到的方法是使用FragmentTabHost并将MapFragment添加到其中。如果您在MainActivity中声明FragmentTabHost,则可能需要将Activity更改为FragmentActivity。我个人无法找到另一种方式。但是您应该能够将类更改为从FragmentActivity继承而不会有太多麻烦。

或者,您可以坚持使用视图并添加MapView而不是使用SupportMapFragment,但是SupportMapFragment将为您提供更多开箱即用的功能。