【发布时间】:2018-08-22 16:14:53
【问题描述】:
我是安卓新手。我试图从另一个activity 获取listView 值,并根据该值显示特定的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;
}
【问题讨论】:
-
你有 3 个 switch 语句而不是 2 个。你的问题到底是什么?
-
每次我添加另一个语句时,它们都堆叠在一起。就像当 case 0 只有 switch(value1) 时,向我显示了我想要的位置。但是当我为 case 0 添加 switch(value2) 时,它向我显示了它们的结果,对于 case 0 的 switch(value3) 也是如此,它向我显示了 switch(value1)-case0 的结果,switch( value2)-case0 ,switch(value3)-case0。我希望我说清楚了。
-
您可以使用
mMap.clear()清除所有标记。
标签: android android-intent switch-statement