我使用 for 循环从 JSON 文件创建一些谷歌地图标记。此外,我创建了一个 onInfoWindowClick 方法来显示更多信息,并且我还启动了一个新 Activity 。现在我的问题是如何使 onInfoWinodwClick 使用我的标记的特定内容启动 Activity 。
我已经尝试过这一点,但我只有一个标记,正如您在下面的代码 fragment 中看到的那样:
@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;
干杯:)
关于java - 单击同一按钮时,如何在一项 Activity 中显示不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57407411/