Добавил в InfoWindow кнопку, но при нажатии ничего не происходит.
Подскажите что не так. Даже System.out.println не выводит.
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(final Marker marker) {
View v = getActivity().getLayoutInflater().inflate(R.layout.window_info_map, null);
TextView text = (TextView)v.findViewById(R.id.titleMarker);
Button del = (Button)v.findViewById(R.id.imgDelMarker);
text.setText(dbHelperMap.getMarker(marker.getPosition().latitude, marker.getPosition().longitude).getName());
del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
for (com.pineapple.softgroup.DB.model.Marker mark : markersList) {
if (mark.getLatitude() == marker.getPosition().latitude && mark.getLongitude() == marker.getPosition().longitude) {
System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
dbHelperMap.deleteMarker(mark);
Toast.makeText(getActivity(), "delete", Toast.LENGTH_LONG).show();
}
}
}
});
return v;
}
@Override
public View getInfoContents(final Marker marker) {
LinearLayout layout = new LinearLayout(mapFragment.getActivity());
Button btn = new Button(mapFragment.getActivity());
layout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
for (com.pineapple.softgroup.DB.model.Marker mark : markersList) {
if (mark.getLatitude() == marker.getPosition().latitude && mark.getLongitude() == marker.getPosition().longitude) {
System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
dbHelperMap.deleteMarker(mark);
Toast.makeText(getActivity(), "delete", Toast.LENGTH_LONG).show();
}
}
}
});
return layout;
}
});
Не в курсе, что там в последних версиях карт, но вроде как когда добавляешь InfoWindow маркеру, то вьюхи там не кликабельны, можно отловить только клик на весь InfoWindow и все.
Поэтому есть два решения проблемы:
1 - отлавливать клик по всему InfoWindow
2 - отлавливать клик по маркеру, по которому поверх карты располагать свою вьюху, которя предназначалась для InfoWindow, а при движении карты, уже самому двигать эту вьюху выставляя setX()/setY().
Во втором случае отдельные элементы могут быть кликабельны, но придется ручками управлять, когда показать, когда скрыть и когда двигать надо.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости