Android Studio - 如何设置来自另一个 activity 的选项卡内容?
Android Studio - How to set a tab content from another activity?
我正在使用 AS 创建一个应用程序,我需要在我的 TabHost 的第三个选项卡中显示一个 Google 地图。我已经阅读了很多问题和教程,他们通常使用 ActivityGroup(已弃用)。我无法将 Google 地图代码放入我的 MainActivity.java 中,因为我已经从其他人那里扩展了:
public class MainActivity extends BaseActivity implements View.OnClickListener{
那么我该如何解决这个问题呢?
我还阅读了有关 Fragments if ActivityGroup is deprecated 的内容,但是如果我使用的是 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));
}
我有经验的方法是使用 FragmentTabHost 并将 MapFragment 添加到其中。如果您在 MainActivity 中声明 FragmentTabHost,您可能需要将 Activity 更改为 FragmentActivity。我个人无法找到替代方法。但是您应该能够轻松地将 类 更改为从 FragmentActivity 继承。
或者,您可以坚持使用视图并添加 MapView 而不是使用 SupportMapFragment,但 SupportMapFragment 会为您提供更多开箱即用的功能。
我正在使用 AS 创建一个应用程序,我需要在我的 TabHost 的第三个选项卡中显示一个 Google 地图。我已经阅读了很多问题和教程,他们通常使用 ActivityGroup(已弃用)。我无法将 Google 地图代码放入我的 MainActivity.java 中,因为我已经从其他人那里扩展了:
public class MainActivity extends BaseActivity implements View.OnClickListener{
那么我该如何解决这个问题呢? 我还阅读了有关 Fragments if ActivityGroup is deprecated 的内容,但是如果我使用的是 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));
}
我有经验的方法是使用 FragmentTabHost 并将 MapFragment 添加到其中。如果您在 MainActivity 中声明 FragmentTabHost,您可能需要将 Activity 更改为 FragmentActivity。我个人无法找到替代方法。但是您应该能够轻松地将 类 更改为从 FragmentActivity 继承。
或者,您可以坚持使用视图并添加 MapView 而不是使用 SupportMapFragment,但 SupportMapFragment 会为您提供更多开箱即用的功能。