Как настроить onmylocationbuttonclicklistener с помощью kotlin?

В Java для настройки переопределения кнопки «Мое местоположение» будет использоваться следующий код.

    //add location button click listener
    map.setOnMyLocationButtonClickListener(new 
    GoogleMap.OnMyLocationButtonClickListener(){
        @Override
        public boolean onMyLocationButtonClick()
        {
            //TODO: Any custom actions
            return false;
        }
    });

Однако в kotlin я не могу найти учебник, чтобы узнать, как настроить новое действие в kotlin. Я видел учебник по переводу java-кода в kotlin. Однако это не увенчалось успехом.

    map.setOnMyLocationButtonClickListener( { 
        GoogleMap.OnMyLocationButtonClickListener() {
            override fun onMyLocationButtonClick() : Boolean {
                //TODO: Any custom actions
                return false;
            }
        }
    )}

Это показывает

Несоответствие типов. Требуется: Boolean Найдено: GoogleMap.OnMyLocationButtonClickListener Ожидаемое значение типа Boolean

Я ожидал, что это переопределение сработает, но я не могу найти никакого руководства по этому поводу. Кто-нибудь может решить мою проблему? Спасибо.


person Chu Man Ki Morris    schedule 19.09.2019    source источник


Ответы (2)


Вы можете просто написать. Kotlin поддерживает интерфейсы Java SAM.

map.setOnMyLocationButtonClickListener {
    // todo
    false
}
person Andrei Tanana    schedule 19.09.2019
comment
Оно работает. Спасибо. Если я хочу использовать значение широты и долготы после нажатия кнопки моего местоположения. Как я могу этого добиться? - person Chu Man Ki Morris; 19.09.2019
comment
короткий ответ: вы можете использовать map.myLocation. Длинный ответ здесь developers.google.com/maps/documentation/android-sdk/ - person Andrei Tanana; 19.09.2019

пытаться

map.setOnMyLocationButtonClickListener(object :
            GoogleMap.OnMyLocationButtonClickListener {
            override fun onMyLocationButtonClick(): Boolean {

                return false
            }
        })
person Madhav    schedule 19.09.2019