我在数据库中有四个条目,我正在使用翻新来获取所有数据。API工作得很好,我得到了所有必要的数据。我想显示用户的姓名,地址,号码和技能(来自数据库)在标记点击和设置他们在自定义警报对话框。
mapfragment.java:
public void onMapReady(final GoogleMap mMap) {
mGoogleMap = mMap;
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(0);
mLocationRequest.setFastestInterval(0);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
fetchLastLocation();
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
ApiInterface apiInterface2 = ApiClient.getClient().create(ApiInterface.class);
Call<AllDataResponse> call2 = apiInterface2.allLabours("showAds");
call2.enqueue(new Callback<AllDataResponse>() {
@Override
public void onResponse(Call<AllDataResponse> call, Response<AllDataResponse> response) {
if (response.body() != null) {
if (response.body().isError_bol()) {
String errosr = response.body().getError_message();
Toast.makeText(getActivity(), errosr, Toast.LENGTH_SHORT).show();
} else {
labourDataAlls = response.body().getAll_labours();
if (labourDataAlls != null) {
latLngData.addAll(labourDataAlls);
Log.v("TAaG", "LOGS" + latLngData.size());
for (int i = 0; i < latLngData.size(); i++) {
double lat = Double.parseDouble(latLngData.get(i).getLb_latitude());
double lng = Double.parseDouble(latLngData.get(i).getLb_longitude());
Str_lb_name = latLngData.get(i).getLb_name();
Str_lb_phone = latLngData.get(i).getLb_phone();
Str_lb_address = latLngData.get(i).getLb_address();
Str_lb_skill = latLngData.get(i).getLb_skills();
drawMarker(new LatLng(lat, lng), i);
}
Log.d("setr", String.valueOf(list));
Toast.makeText(getActivity(), "No Error", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Unknown Error Occurs", Toast.LENGTH_SHORT).show();
}
}
}
}
@Override
public void onFailure(Call<AllDataResponse> call, Throwable t) {
Toast.makeText(getContext(), "" + t.toString(), Toast.LENGTH_SHORT).show();
}
});
mMap.setOnInfoWindowClickListener(this);
mMap.setMyLocationEnabled(true);
}
private void drawMarker(final LatLng point , final int index){
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point).title(labourDataAlls.get(index).getLb_name()+index);
mGoogleMap.addMarker(markerOptions);
}
@Override
public void onInfoWindowClick(Marker marker) {
}
向googleMap添加标记时的setTag(索引)
private void drawMarker(final LatLng point , final int index){
private Marker marker;
marker = mGoogleMap.addMarker(new MarkerOptions()
.position(point)
.title(labourDataAlls.get(index).getLb_name()+index);
marker.setTag(index);
}
@Override
public void onInfoWindowClick(Marker marker) {
int index = (int)(marker.getTag());
//Use index get Value from labourDataAlls
}
参考https://stackoverflow.com/a/40962580/12676247
嗨,我有问题,如何实现点击标记的信息窗口?问题是我在地图上有很多标记,如果单击信息窗口,每个标记都有另一个活动<代码>在此处输入代码 以下是示例 标记1----- 我尝试了很多代码但没有解决
提前感谢!
我有一张地图,上面有很多自定义的大标记。现在,我希望允许用户在地图上创建路径(显示为折线,稍后保存为地理坐标对列表)。 如果用户单击地图,我可以使用地图的setOnMapClickedListener方法收集这些位置。但是如果用户点击一个标记(setOnMarkerClickedListener),我只能检索标记的位置(通常是标记的ancor的位置)。
根据《本地和远程通知编程指南》,当发送远程通知并点击SpringBoard中的应用程序图标时: 用户点击警报中的默认按钮或点击(或单击)应用程序图标。如果点击默认操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其代理的应用程序:didFinishLaunchingWithOptions:method,传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。 如果通知是远程的
并且Ive在我的AndroidManifest.xml中定义了新的活动,但是我不知道如何解决这个问题······ 我尝试了很多答案在Stackoverflow和其他网站上找到,但我不能解决这个问题...