2013-12-07 2 views
4

У меня есть активность, в которой размещаются два фрагмента. Один фрагмент предоставляет некоторую информацию пользователю в различных полях. В другом фрагменте должна отображаться Карта.Extend MapFragment Android

Для фрагмента, на котором размещена карта, мне нужно добавить пользовательскую логику для отображения маркеров и нескольких других вещей, которые я хотел бы использовать в других местах приложения. Что является лучшим способом, чтобы создать карту без определения фрагмента в XML, как:

<fragment 
class="com.google.android.gms.maps.MapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent"/> 

Спасибо, Натан

Edit:

Я теперь с помощью вложенных фрагментов, не уверен, что лучший способ справиться с этим? Мой MapFragment Сейчас:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

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

и код фрагментов:

public class ViewCurrentMapFragment extends Fragment implements View.OnClickListener { 
    public static final String TAG = "MAP_FRAGMENT"; 

    private GoogleMap map; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_view_current_map, container, false); 
     return rootView; 
    } 

    private void getCurrentMarkers() { 
     // Getting reference to the SupportMapFragment of activity_main.xml 
     SupportMapFragment smf = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)); 

     map = smf.getMap(); 

    } 

    @Override 
    public void onClick(View v) { 
    } 


    @Override 
    public void onResume() { 
     super.onResume(); 
     getCurrentMarkers(); 
    } 

} 

Проблема, которую я имею теперь, что smf.getMap() возвращает нуль. Есть идеи?

Edit2:

Понял работать путем изменения:

com.google.android.gms.maps.MapFragment 

to 

com.google.android.gms.maps.SupportMapFragment 

ответ

Смежные вопросы