单击同一按钮时,如何通过一个活动显示不同的内容



我用一个 for 循环从 JSON 文件创建一些谷歌地图标记。此外,我创建了一个onInfoWindowClick方法来显示更多信息,在那里我还启动了一个新活动。现在我的问题是如何使onInfoWinodwClick使用我的标记的特定内容启动活动。

我已经试过了,但我只有一个标记,正如您在以下代码中看到的那样:

@Override
public boolean onMarkerClick(final Marker marker) {
Intent intent = new Intent(MainActivity.this,RecyclerViewActivity.class);
Bundle bundle = new Bundle();
String infoArrayString;
if (marker.equals(myMarker1)) 
{
//Assuming you have JSONArray of information to show on the next screen
infoArrayString = markerJson1.toString();
bundle.putString("info",infoArrayString);
}else if(marker.equals(myMarker2){
//info for marker2
}
intent.putExtras(bundle);
startActivity(intent);
}

在这里,我创建标记只是想象一个 for 循环,它仅使用不同的纬度和经度坐标循环这个槽:

LatLng companies = new LatLng(latitude, longitude);
Marker marker = mMap.addMarker(new MarkerOptions()
.position(companies)
.title(companyName)
.snippet("Anzahl der Stellen: " + jobCounter + "n" + ultimateJobTitles)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.maps_icon2)));
jobCounter = 0;
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(MapsActivity.this, MarkerInfo.class);
startActivity(intent);
}
});

您可以在创建标记时使用Tag保存每个标记相关信息

// set related info as tag
marker1.setTag(markerJson1.toString());

然后,您可以在onMarkerClick方法中获取相关信息,如下所示

// to retrieve the info from clicked marker
String info = (String) marker.getTag();// Type cast to your object type;

干杯:(

最新更新