2013-06-06 8 views
9

मुझे मानचित्र के टुकड़े तक पहुंचने में समस्याएं हैं। getFragmentManager()। FindFragmentById (R.id.map)) हमेशा शून्य हो जाता है। मुझे नहीं पता क्यों। समस्या क्या है?मैपफ़ागमेंट findFragmentById हमेशा शून्य

धन्यवाद!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/root" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tvNombreCentro" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingBottom="10dp" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 


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

    </LinearLayout> 

और setContentView मैं नक्शा करने के लिए तक पहुँचने का प्रयास करने के बाद गतिविधि में है, लेकिन मैं एक अपवाद

public class Mapa extends Activity { 
private GoogleMap mMap; 
private ActionBar ab; 

private TextView tvNombreCentro; 
private TextView tvTelefonoValor; 
private TextView tvEMailValor; 
private TextView tvWebValor; 
private TextView tvDireccionValor; 

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

    setContentView(R.layout.mapa_centro); 
    GoogleMap mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) 
      .getMap(); 
} 

उत्तर

21

इस तरह से:

SupportMapFragment mapFrag = (SupportMapFragment) getSupportFragmentManager() 
        .findFragmentById(R.id.map); 

      map = mapFrag.getMap(); 
लेआउट में

here is full code with sample:

+0

देरी के लिए खेद है। यह काम करता हैं! – user1852854

+11

एक नोट के रूप में, यदि आप मानचित्र प्रदर्शित करने के लिए एंड्रॉइड सपोर्ट लाइब्रेरी का उपयोग करते हैं, तो कृपया सुनिश्चित करें कि नक्शा खंड में आपकी लेआउट xml फ़ाइल में एंड्रॉइड होना चाहिए: नाम विशेषता गुण 'com.google.android.gms.maps.SupportMapFragment 'com.google.android.gms.maps.MapFragment' की बजाय, अन्यथा यह काम नहीं करेगा और 'शून्य' – Aryo

+0

लौट रहेगा उत्कृष्ट! इससे मुझे मदद मिलती है!। –

2

मामले में अपनी समस्या को हल नहीं किया गया है प्राप्त करते हैं, इस प्रयास करें:

के रूप में आप SupportMapFragment उपयोग कर रहे हैं, जबकि नक्शा पुन: प्राप्त करने,

GoogleMap mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

इसके अलावा, चान का उपयोग जीई

public class Mapa extends Activity { 

उपयोग करने के लिए
public class Mapa extends FragmentActivity { 
+0

देरी के लिए खेद है। जवाब सही है लेकिन मुझे विस्तार को बदलने की जरूरत नहीं है, केवल getSupportFragmentManager प्राप्त करें। धन्यवाद! – user1852854

1

बदलें

android:name = "com.google.android.gms.maps.SupportMapFragment"

android:name = "com.google.android.gms.maps.MapFragment" द्वारा

या, आप getFragmentManager() के बजाय getSupportFragmentManager() का उपयोग कर सकते हैं।

1

मैपफ्रैगमेंट प्राप्त करने का प्रयास करते समय मुझे एक ही समस्या थी लेकिन शून्य हो रही थी क्योंकि डिवाइस में Google Play सेवाएं अपडेट नहीं थीं।

संबंधित मुद्दे