0
我的地圖是按照它的設想開始的,但標記,地圖類型和縮放的設置從未應用於我的SupportMapFragment。當我在另一個項目中啓動相同的代碼時,在MainActivity中,一切正常。我如何使它在SupportMapFragment中工作?GoogleMap設置(addMarker,setMapType和CameraUpdate)在SupportMapFragment中不起作用
MainActivity(工作):
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
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.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends Activity {
private final LatLng BUTIKPLATS = new LatLng(57.873873, 11.974995);
private GoogleMap karta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
karta = ((MapFragment) getFragmentManager().findFragmentById(R.id.karta)).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);
}
}
SupportMapFragment(不工作):
import android.os.Bundle;
import android.view.View;
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.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class Karta extends SupportMapFragment{
public static Karta newInstance() {
Karta f = new Karta();
return f;
}
private GoogleMap karta;
private final LatLng BUTIKPLATS = new LatLng(57.873873, 11.974995);
public void onCreate(View v, Bundle savedInstanceState){
super.onCreate(savedInstanceState);
System.out.println("onViewCreated1");
karta = ((SupportMapFragment)getFragmentManager().findFragmentById(R.id.kontaktVisaFragment)).getMap();
System.out.println("Karta initierad (.getMap)");
if (karta !=null){
System.out.println("Karta != null");
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);
}
}
}
感謝:更換:
用!你是天使!它既可以使用也可以不使用((SupportMapFragment)getFragmentManager()。findFragmentById(R.id.kontaktVisaFragment))。我試圖改變它onViewCreated之前,但它墜毀然後。那一次我肯定做錯了事。 – Sluggo