我在我的项目中使用NavigationDrawer
并且我正在实施Google maps
,但由于getSupportFragmentManager()
我无法做到这一点,它始终给出错误:
方法
getSupportFragmentManager()
未定义类型MapView
。
这是代码:
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@SuppressLint("NewApi")
public class MapView extends Fragment {
private Context context = getActivity();
public MapView(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.map_view, container, false);
GoogleMap gMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(context);
Log.e("Maps", "Result int value::" + result);
switch (result) {
case ConnectionResult.SUCCESS:
Log.e("Maps", "RESULT:: SUCCESS");
break;
case ConnectionResult.DEVELOPER_ERROR:
Log.e("Maps", "RESULT:: DE");
break;
case ConnectionResult.INTERNAL_ERROR:
Log.e("Maps", "RESULT:: IE");
break;
case ConnectionResult.INVALID_ACCOUNT:
Log.e("Maps", "RESULT:: IA");
break;
case ConnectionResult.NETWORK_ERROR:
Log.e("Maps", "RESULT:: NE");
break;
case ConnectionResult.RESOLUTION_REQUIRED:
Log.e("Maps", "RESULT:: RR");
break;
case ConnectionResult.SERVICE_DISABLED:
Log.e("Maps", "RESULT:: SD");
break;
case ConnectionResult.SERVICE_INVALID:
Log.e("Maps", "RESULT:: SI");
break;
case ConnectionResult.SERVICE_MISSING:
Log.e("Maps", "RESULT:: SM");
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
Log.e("Maps", "RESULT:: SVUR");
break;
case ConnectionResult.SIGN_IN_REQUIRED:
Log.e("Maps", "RESULT:: SIR");
break;
default:
break;
}
gMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
gMap.setMyLocationEnabled(true);
Log.e("Maps", "------EOC-------");
return rootView;
}
}
答案 0 :(得分:0)
import fragment from android.support.v4.app.Fragment;
and just change
GoogleMap gMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
to
GoogleMap gMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();