2012-03-31 2 views

ответ

8

Here is a book's sample application, показывающий, как иметь MapView в Fragment в приложении уровня API 11+. Это в основном просто MapActivity. Вот основные биты фрагмента, который загружает MapView:

public class MapFragment extends Fragment { 
    private MapView map=null; 
    private MyLocationOverlay me=null; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
    return(new FrameLayout(getActivity())); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    map=new MapView(getActivity(), "0mjl6OufrY-tHs6WFurtL7rsYyEMpdEqBCbyjXg"); 
    map.setClickable(true); 

    map.getController().setCenter(getPoint(40.76793169992044, 
              -73.98180484771729)); 
    map.getController().setZoom(17); 
    map.setBuiltInZoomControls(true); 

    Drawable marker=getResources().getDrawable(R.drawable.marker); 

    marker.setBounds(0, 0, marker.getIntrinsicWidth(), 
          marker.getIntrinsicHeight()); 

    map.getOverlays().add(new SitesOverlay(marker)); 

    me=new MyLocationOverlay(getActivity(), map); 
    map.getOverlays().add(me); 

    ((ViewGroup)getView()).addView(map); 
    } 

    // rest of fragment here 
} 
+1

спасибо за ответ ... однако, не моя деятельность должна быть mapactivity? У меня есть одна активность с тремя фрагментами, одна из которых, например, показывает карту – hermann

+1

@hermann: «однако, моя активность должна быть макробностью?» - да, «MapView» требует, чтобы его хостинговая деятельность была «MapActivity». «У меня есть одно действие с тремя фрагментами, один из которых, как будто бы показывает карту», ​​потому что это «MapActivity», это не означает, что вещь * только *, которую он может показать, это «MapView». Это должно работать нормально. – CommonsWare

+0

Я получаю следующую ошибку, когда пытаюсь реализовать те же 12-03 03: 22: 36.903: E/dalvikvm (12866): Не удалось найти класс 'com.google.android.maps.MapView', на который ссылается метод com. m7.nomad.MapsFragment.onActivityCreated –