2014-01-16 2 views
0

다음 코드에서 "메서드 getMap()이 형식에 대해 정의되지 않았습니다."라는 메시지가 나타납니다. 왜? Google Play 서비스 라이브러리를 추가했습니다.getMap() 메서드가 정의되지 않았습니다.

나는 단편 대신 활동에 똑같은 코드를 작성한 다음이 오류를 얻지 못했습니다. 그러나 나는 조각 안에

Karta.java이 사용하는 neew :

package nu.sluggo.testapp.foretagsinfo; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.google.android.gms.maps.CameraUpdate; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class Karta extends Fragment{ 



    public static Karta newInstance() { 
     Karta f = new Karta(); 
     return f; 
    } 


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

    } 

    @Override 
    public void onViewCreated(View v, Bundle savedInstanceState){ 
     super.onViewCreated(v, savedInstanceState); 

    final LatLng BUTIKPLATS = new LatLng(57.873873, 11.974995); 

    GoogleMap karta; 
     karta = ((Karta) getFragmentManager().findFragmentById(R.id.kontaktVisaFragment)).getMap(); 

     karta.addMarker(new MarkerOptions().position(BUTIKPLATS).title("Vita Fläckens Blommor")); 
     karta.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
     CameraUpdate update = CameraUpdateFactory.newLatLngZoom(BUTIKPLATS, 17); 
     karta.animateCamera(update); 
    } 
    } 
+1

대신 SupplMapFragment 또는 MapFragment를 확장하지 않으시겠습니까? – Emmanuel

+0

http://stackoverflow.com/questions/20919048/android-android-view-inflateexception-binary-xml-file-line-8-error-inflatin/20971284#20971284. 이것을 확인하십시오. – Raghunandan

답변

3

Karta하지 extendsSupportMapFragment 또는 MapFragment 않습니다; . Fragments를 처리 할 때 getMap()이 (해당 클래스에서만 존재 당신은 하나 Karta는이 중 하나를 확장해야합니다 (당신의 minSdkVersion) 또는 용도에 따라 :

GoogleMap karta = ((`SupportMapFragment` or `MapFragment`) getFragmentManager().findFragmentById(R.id.kontaktVisaFragment)).getMap(); 
0

나는 전역 변수로 선언

다음 내에서 onCreate() 또는 onCreateView()에서

mapFragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)); 

전화

SupportMapFragment mapFragment 
만약 당신이 사용자 SupportMapFragmen Java 구현에서 반드시 같은 것을 사용하십시오.

<fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
관련 문제