2015-06-07 64 views
1

我在標題中描述了一個問題,目的是顯示Google中的片段地圖。getSupportFragmentManager()方法未定義爲類型片段

這是fragment_inicio.xml

<fragment 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 

這是InicioFragment.java

public class InicioFragment extends Fragment implements OnMapClickListener { 

private final LatLng UPV = new LatLng(39.481106, -0.340987); 
private GoogleMap mapa; 

// @Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_inicio, container, 
      false); 

    return rootView; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fragment_inicio); 

    mapa = ((SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map)).getMap(); 
    mapa.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
    mapa.moveCamera(CameraUpdateFactory.newLatLngZoom(UPV, 15)); 
    mapa.setMyLocationEnabled(true); 
    mapa.getUiSettings().setZoomControlsEnabled(false); 
    mapa.getUiSettings().setCompassEnabled(true); 
    mapa.addMarker(new MarkerOptions() 
      .position(UPV) 
      .title("UPV") 
      .snippet("Universidad Politécnica de Valencia") 
      .icon(BitmapDescriptorFactory 
        .fromResource(android.R.drawable.ic_menu_compass)) 
      .anchor(0.5f, 0.5f)); 
    mapa.setOnMapClickListener(this); 
} 

private void setContentView(int fragmentInicio) { 
    // TODO Auto-generated method stub 

} 

public void moveCamera(View view) { 
    mapa.moveCamera(CameraUpdateFactory.newLatLng(UPV)); 
} 

public void animateCamera(View view) { 
    if (mapa.getMyLocation() != null) 
     mapa.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
       mapa.getMyLocation().getLatitude(), mapa.getMyLocation() 
         .getLongitude()), 15)); 
} 

public void addMarker(View view) { 
    mapa.addMarker(new MarkerOptions().position(new LatLng(mapa 
      .getCameraPosition().target.latitude, 
      mapa.getCameraPosition().target.longitude))); 
} 

@Override 
public void onMapClick(LatLng puntoPulsado) { 
    mapa.addMarker(new MarkerOptions().position(puntoPulsado).icon(
      BitmapDescriptorFactory 
        .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW))); 

} 

}

我希望這個錯誤的任何幫助。

感謝

編輯

嘗試你提到我,但我還是約會錯誤。現在

錯誤告訴我:

不能從片段轉換爲SupportMapFragment

該項目給了我,所以我沒有關於appcompat_v7也不V4多的知識,讓我明白您的評論V4是更好? 。

這個項目被帶到了一個互聯網的例子,並簡單地添加了地圖,現在他們說他們想離開這個位置。

這是最好的方式,或尋找另一種方式來添加谷歌地圖定位。

這是太多的問谷歌地圖片段的例子,但沒有其他請求。

+1

你做'進口android.support.v4.app.Fragment導入片段;'? –

回答

0

而不是使用getSupportFragmentManager()使用getFragmentManager()

它看起來像你使用android.app.Activity和相關的碎片,而不是支持v4支持庫提供的Activity和碎片。

如果您需要使用支持碎片,請參閱導入支持庫碎片和活動。如果不更換段管理

如需更多幫助,請參閱Fragment vs Support Fragments

相關問題