从活动中获取变量的值并将其传递给片段活动(Get value of variable from activity and pass it to fragment activity)

编程入门 行业动态 更新时间:2024-10-27 17:19:07
从活动中获取变量的值并将其传递给片段活动(Get value of variable from activity and pass it to fragment activity)

我想在我的Activity中获取mLocal的值,并将其传递给Fragment类中的LatLng。

主要活动

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); initLocationFetching(MainActivity.this); mapFragment = new MapFragment(MainActivity.this, this); manager = getSupportFragmentManager(); manager.beginTransaction().replace(R.id.mainLayout, mapFragment).commit(); } @Override public void locationFetched(Location mLocal, Location oldLocation, String time, String locationProvider) { super.locationFetched(mLocal, oldLocation, time, locationProvider); > here mLocal }

地图片段类

class MapFragment extends Fragment implements OnMapReadyCallback, GoogleApiClient.OnConnectionFailedListener { @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng origin = new LatLng(14.507328, 121.000905); mMap.addMarker(new MarkerOptions() .position(new LatLng(14.507577, 121.004456)) .anchor(0.5f, 0.5f) .title("title") .snippet("snippet") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(value1, value2), 9.0f)); }

上面,我希望它不是硬编码的。 我想在MainActivity中获取mLocal的值并将其传递给LatLng()MapFragment。

I want to get the value of mLocal in my Activity and pass it to LatLng on Fragment class.

Main Activity

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); initLocationFetching(MainActivity.this); mapFragment = new MapFragment(MainActivity.this, this); manager = getSupportFragmentManager(); manager.beginTransaction().replace(R.id.mainLayout, mapFragment).commit(); } @Override public void locationFetched(Location mLocal, Location oldLocation, String time, String locationProvider) { super.locationFetched(mLocal, oldLocation, time, locationProvider); > here mLocal }

Map Fragment Class

class MapFragment extends Fragment implements OnMapReadyCallback, GoogleApiClient.OnConnectionFailedListener { @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng origin = new LatLng(14.507328, 121.000905); mMap.addMarker(new MarkerOptions() .position(new LatLng(14.507577, 121.004456)) .anchor(0.5f, 0.5f) .title("title") .snippet("snippet") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(value1, value2), 9.0f)); }

Above, I want it not hardcoded. I want to get the value of mLocal in MainActivity and pass it on LatLng() MapFragment.

最满意答案

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); initLocationFetching(MainActivity.this); mapFragment = new MapFragment(MainActivity.this, this); manager = getSupportFragmentManager(); } @Override public void locationFetched(Location mLocal, Location oldLocation, String time, String locationProvider) { super.locationFetched(mLocal, oldLocation, time, locationProvider); //After initLocationFetching. Bundle bundle = new Bundle(); bundle.putDouble("Lat",mLocal.getLatitude()); bundle.putDouble("Long"mLocal.getLongitude()); mapFragment.setArguments(bundle); manager.beginTransaction().replace(R.id.mainLayout, mapFragment).commit(); } //In MapFragment class MapFragment extends Fragment implements OnMapReadyCallback, GoogleApiClient.OnConnectionFailedListener { double lati=0.0; double longi=0.0; @Override public void onCreate(Bundle bundle){ lati=getArguments().getDouble("Lat"); longi=getArguments().getDouble("Long"); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng origin = new LatLng(lati,longi); mMap.addMarker(new MarkerOptions() .position(new LatLng(lati,longi)) .anchor(0.5f, 0.5f) .title("title") .snippet("snippet") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(value1, value2), 9.0f)); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); initLocationFetching(MainActivity.this); mapFragment = new MapFragment(MainActivity.this, this); manager = getSupportFragmentManager(); } @Override public void locationFetched(Location mLocal, Location oldLocation, String time, String locationProvider) { super.locationFetched(mLocal, oldLocation, time, locationProvider); //After initLocationFetching. Bundle bundle = new Bundle(); bundle.putDouble("Lat",mLocal.getLatitude()); bundle.putDouble("Long"mLocal.getLongitude()); mapFragment.setArguments(bundle); manager.beginTransaction().replace(R.id.mainLayout, mapFragment).commit(); } //In MapFragment class MapFragment extends Fragment implements OnMapReadyCallback, GoogleApiClient.OnConnectionFailedListener { double lati=0.0; double longi=0.0; @Override public void onCreate(Bundle bundle){ lati=getArguments().getDouble("Lat"); longi=getArguments().getDouble("Long"); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng origin = new LatLng(lati,longi); mMap.addMarker(new MarkerOptions() .position(new LatLng(lati,longi)) .anchor(0.5f, 0.5f) .title("title") .snippet("snippet") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(value1, value2), 9.0f)); }

更多推荐

本文发布于:2023-08-04 03:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1406772.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   片段   活动中   并将其   pass

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!