我是Android新手。我试图从另一个listView
获取activity
的值,并根据该值显示特定的location
。在这种情况下,只有第一个switch-case
可以正常工作,但是当我添加第二个switch-case
时,它向我展示了第一个和第二个的结果。如何改进此代码,以使每个switch
语句仅显示一个结果。
value1 = getIntent().getIntExtra("value1", 0);
value2 = getIntent().getIntExtra("value2", 0);
value3 = getIntent().getIntExtra("value3", 0);
@Override
public void onLocationChanged(Location location) {
mLastLocation = location;
if (mMarker != null)
mMarker.remove();
latitude = location.getLatitude();
longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
MarkerOptions markerOptions = new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
mMarker = mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13));
switch (value1) {
case 0:
mBaniaLuca = mMap.addMarker(new MarkerOptions()
.position(BaniaLuca)
.title("BaniaLuca"));
mBaniaLuca.setTag(0);
break;
case 1:
mBiedronka = mMap.addMarker(new MarkerOptions()
.position(Biedronka)
.title("Biedronka"));
mBiedronka.setTag(0);
break;
}
switch (value2) {
case 0:
mTARITA = mMap.addMarker(new MarkerOptions()
.position(TARITA)
.title("Tarita"));
mTARITA.setTag(0);
break;
}
switch (value3) {
case 0:
mCocon = mMap.addMarker(new MarkerOptions()
.position(Cocon)
.title("Cocon"));
mCocon.setTag(0);
break;
}
答案 0 :(得分:1)
就像每次您处理开关盒一样,您正在“添加”标记。 注意“添加”一词。
在切换用例之前,先声明,然后添加代码以删除所有现有标记。如果我正确理解您的问题,这就是您想要的行为。