SupportMapFragment – нельзя отбрасывать из фрагмента в MapFragment

Попытка собрать небольшой MapFragment в той деятельности, которую я создаю, но у меня есть проблемы с тем, чтобы все это работало. Я знаю, что службы api и Play Maps установлены правильно, так как я сделал тестовое руководство, и все сработало нормально.

Следуя документации здесь , у меня возникает следующая проблема: в моем методе setUpMapIfNeeded я могу либо использовать getFragmentManager() либо getSupportFragmentManager() . Когда я использую getFragmentManager() , Eclipse классно с этим, но когда я запускаю, я получаю NoSuchMethodError говорящий, что метод не определен. Когда я getSupportFragmentManager() , Eclipse не нравится и дает мне ошибку «Can not cast from Fragment to 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); } } } 

Сообщите мне, есть ли другой код, который я могу предоставить, и я буду рад быстро его опубликовать.

Solutions Collecting From Web of "SupportMapFragment – нельзя отбрасывать из фрагмента в MapFragment"

Я могу использовать getFragmentManager () или getSupportFragmentManager ().

Здесь не должно быть дебатов. Если getSupportFragmentManager() доступен вам, то вы используете backport фрагментов Android Support, и это метод, который вы должны использовать.

Когда я выбираю getSupportFragmentManager (), Eclipse не нравится и дает мне ошибку «Can not cast from Fragment to MapFragment».

Это потому, что вы не должны использовать MapFragment . Вы используете фрагмент поддержки пакета поддержки Android Support, и поэтому вы должны использовать 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 и добавьте для сборки, а затем на странице с фрагментами просто импортируйте

Import android.support.v4.app.FragmentActivity;

Вы можете расширить FragmentActivity

Открытый класс MainActivity extends FragmentActivity реализует LocationListener {

}

И он также получает доступ к getSupportFragmentManager ();

SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager (). FindFragmentById (R.id.map);