我得到“以下代码中的类型”未定义方法getMap()。为什么? 我添加了Google-Play-Services库。
我还在Activity中创建了完全相同的代码而不是片段,然后我没有收到此错误。但是我想在片段中使用它
Karta.java:
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);
}
}
答案 0 :(得分:3)
Karta
不会extends
SupportMapFragment
或MapFragment
; getMap()
仅存在于这些类中(处理Fragments
时。您需要让Karta
扩展其中一个(取决于您的minSdkVersion
)或使用:
GoogleMap karta = ((`SupportMapFragment` or `MapFragment`) getFragmentManager().findFragmentById(R.id.kontaktVisaFragment)).getMap();
答案 1 :(得分:0)
我宣布为全局变量
SupportMapFragment mapFragment
然后在我的onCreate()或onCreateView()调用
mapFragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map));
如果在Java实现中使用SupportMapFragment,请确保在XML中使用相同的
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />