试图放在一起的活动我建立一个小MapFragment,但我有一些麻烦它所有的工作。 我知道地图API和播放业务都正确安装,因为我做了测试教程和一切工作正常。
继文档在这里 ,我遇到了以下问题:在我的setUpMapIfNeeded的方法,我既可以使用getFragmentManager()
或getSupportFragmentManager()
当我使用getFragmentManager()
,Eclipse是冷静了它,但是当我跑,我得到NoSuchMethodError
说,该方法是不确定的。 当我选择getSupportFragmentManager()
,Eclipse不喜欢它,并给我的错误“无法从片段转换为MapFragment”。 所以,这是怎么回事? 有什么建议?
private void setUpMapIfNeeded() {
//Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = ((MapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
if (mMap != null) {
//do things to the map
mMap.addMarker(new MarkerOptions().position(LOCATION).title(EXTRA_URL));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LOCATION,15));
mMap.getUiSettings().setZoomControlsEnabled(false);
}
}
}
让我知道如果有任何其他的代码,我可以提供,我会很乐意很快张贴。
我既可以使用getFragmentManager()或getSupportFragmentManager()。
这里应该有任何争议。 如果getSupportFragmentManager()
是提供给你,那么你正在使用片段的支持Android包的反向移植,这是你必须使用的方法。
当我选择getSupportFragmentManager(),Eclipse不喜欢它,并给我的错误“无法从片段转换为MapFragment”。
那是因为你不应该使用MapFragment
。 您正在使用片段的支持Android包的反向移植,因此,你必须使用SupportMapFragment
。
这是我必须做的,因为我是11岁以下级别的工作;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import android.support.v4.app.FragmentActivity;
public class MapaActivity extends FragmentActivity {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapa);
map = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mapa)).getMap();
}
}
哎只需V4 jar添加到您的libs文件夹,并添加构建然后在片段页面只是进口
进口android.support.v4.app.FragmentActivity;
你可能能够延伸FragmentActivity
公共类MainActivity扩展FragmentActivity实现LocationListener的{
}
它也访问getSupportFragmentManager();
SupportMapFragment FM =(SupportMapFragment)getSupportFragmentManager()findFragmentById(R.id.map)。