2014-07-07 30 views
0

我用我的项目NavigationDrawer和我实现谷歌maps,但我不能这样做,因为的getSupportFragmentManager(),它总是给人错误:调用谷歌地图

The method getSupportFragmentManager() is undefined for the type 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; 
    } 

} 
+1

检查这个http://stackoverflow.com/questions/20919048/android-android-view-inflateexception-binary-xml-file-line-8-error-inflatin – Raghunandan

回答

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(); 
+0

对不起伙计后按照步骤,我得到这个: - 不能从片段投影到SupportMapFragment ... –

+0

但是我也在使用我的片段中的地图,但我没有得到这种类型的错误。请确保你已经导入了这样的片段import android.support.v4.app.Fragment; –