我有一个FragmentActivity,我想在其中使用一个映射片段。我在获取支持片段管理器访问它时遇到了问题。
if (googleMap == null) {
googleMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map1)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
// create marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latitude, longitude)).title("Hello Maps ");
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(latitude, longitude)).zoom(15).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
// adding marker
googleMap.addMarker(marker);
发布于 2013-11-27 16:51:38
您可以直接调用
getFragmentManager()
来获取片段管理器。
或
在你的片段中,
创建字段:
private FragmentActivity myContext;
覆盖片段的onAttach方法:
@Override
public void onAttach(Activity activity) {
myContext=(FragmentActivity) activity;
super.onAttach(activity);
}
当您需要获取支持片段管理器调用时:
FragmentManager fragManager = myContext.getSupportFragmentManager(); //If using fragments from support v4
或
FragmentManager fragManager = myContext.getFragmentManager();
你的任务完成了。
发布于 2013-11-27 17:00:14
发布于 2017-09-21 16:26:09
Kotlin用户尝试这个答案
(activity as AppCompatActivity).supportFragmentManager
https://stackoverflow.com/questions/20237531
复制相似问题