Не могу удалить маркер

378
01 марта 2017, 19:54

Добавил в 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;
            }
        });
Answer 1

Не в курсе, что там в последних версиях карт, но вроде как когда добавляешь InfoWindow маркеру, то вьюхи там не кликабельны, можно отловить только клик на весь InfoWindow и все.

Поэтому есть два решения проблемы:
1 - отлавливать клик по всему InfoWindow
2 - отлавливать клик по маркеру, по которому поверх карты располагать свою вьюху, которя предназначалась для InfoWindow, а при движении карты, уже самому двигать эту вьюху выставляя setX()/setY().

Во втором случае отдельные элементы могут быть кликабельны, но придется ручками управлять, когда показать, когда скрыть и когда двигать надо.

READ ALSO
Когда имеет смысл наследоваться от Thread в Java?

Когда имеет смысл наследоваться от Thread в Java?

Читая статью о многопоточности в Java, я наткнулся на следующие строки:

227
Как использовать native packing inno setup 5 в NetBeans

Как использовать native packing inno setup 5 в NetBeans

Здравствуйте, нахожусь в небольшом недоуменииЕсть утилита, Inno Setup 5 Script, для того что бы запаковывать проекты в exe, очень хорошая штука(https://netbeans

294
Безопасное хранение ключей шифрования

Безопасное хранение ключей шифрования

Существует ли в Java под android возможность хранить ключи шифрования безопасным образом, например защищенными паролем?

296
ERROR StatusLogger No log4j2 configuration file found

ERROR StatusLogger No log4j2 configuration file found

Проект Maven с использованием HibernateПри запуске возникают ошибки:

559