값을 MainActivity에서 Fragment로 설정했지만 값이 Fragment에서 0이됩니다. moveToLocation()에 로그인했을 때 위도 값은 0 이었지만 setLocation에 로그인하면 위도 값이 올바른 값으로 전달되었습니다. 이유가 무엇인가요?위도 값을 0으로 설정했습니다.
MainActivity
MapFragment mapFragment = new MapFragment();
mapFragment.setLocation(111, 222, "abcAddress");
조각
public class MapFragment extends Fragment {
private GoogleMap mMap;
private double mLatitude;
private double mLongitude;
private String mAddress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
MapsInitializer.initialize(getActivity());
} catch (GooglePlayServicesNotAvailableException e) {
Log.d("", "You must update Google Maps.");
getActivity().finish();
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mMap = ((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
moveToLocation();
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.map_page, null);
}
public void setLocation(double latitude, double longitude, String address) {
mLatitude = latitude;
mLongitude = longitude;
mAddress = address;
}
protected void moveToLocation() {
CameraPosition location = new CameraPosition.Builder()
.target(new LatLng(mLatitude, mLongitude)).zoom(15.5f)
.bearing(0).tilt(25).build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(location));
MarkerOptions marker = new MarkerOptions().position(new LatLng(mLatitude, mLongitude)).title(mAddress);
marker.snippet("Snippet");
mMap.addMarker(marker);
}
}
표시 ツ바꾸기를 사용하는 곳에서 더 많은 코드를 사용하여 단편을 작성하십시오. –
위치를 설정하려고 할 때'MapFragment'의 새 인스턴스를 만드시겠습니까? –
활동에서 바꾸기와 커밋을 사용하지 않습니다. 활동의 다른 코드와 단편과의 관계가 없습니다. – tarofess