MapActivity与TabHost片段
问题描述:
我是iOS的人尝试移动到Android,我需要有人解释/帮助我该怎么做,在这种情况下。我有一个tabhost片段的应用程序(3个选项卡)。在这一刻,我只是加载3个不同的简单片段,它工作正常。MapActivity与TabHost片段
现在,我想要将MapActivity实现到第一个选项卡上。不幸的是,我无法将其扩展到MapActivity。它目前扩展到Fragment。
我在互联网上搜索,但可以找到完美的解决方案。
这是link是解决方案之一,但它使用了不赞成使用的LocalActivityManager。
我的问题是我可以只加载2片段和一个单独的活动地图到片段tabhost。如果可能的话,你可以请我介绍一下如何实现它?
注:我建立了我的应用程序tabhost片段基于此tutorial。
万分感谢我。
答
我认为一个解决办法是使用支持LIB的这款改装版有FragmentActivity延伸,而不是活动MapActivity:
https://github.com/petedoyle/android-support-v4-googlemaps
记住,你需要创建活动类中的MapView对象,它传递给片段,以这种方式:
public class MyMapActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Exchanger.sMapView = new MapView(this, "your_api_key");
}
public static class Exchanger {
public static MapView sMapView;
}
}
和片段将是
public class MapFragment extends Fragment {
@Override
public void onCreate(Bundle args) {
super.onCreate(args);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup vg, Bundle data) {
final ViewGroup parent = (ViewGroup) MyMapActivity.Exchanger.sMapView.getParent();
if (parent != null)
parent.removeView(MyMapActivity.Exchanger.sMapView);
return MyMapActivity.Exchanger.mMapView;
}
}
MyMapActivity
是您链接的教程中的TabsFragmentActivity
。 请记住使用支持库的修改版本(download link)
上述方法现在已被弃用。 您现在可以使用MapFragment: http://developer.android.com/google/play-services/maps.html
您好,我仍然需要帮助。请帮忙! – JHHoang 2012-08-01 13:47:32