У меня проблема с использованием onMarkerClickListeners. Я новичок, и появляется сообщение об ошибке, которое говорит о пропущенном операторе возврата

1

Я получаю эту ошибку в последнем переопределении.

Я действительно не знаю, что мне нужно вернуть, поэтому, пожалуйста, помогите мне.

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,GoogleMap.OnMarkerClickListener {

    private GoogleMap mMap;
    private Marker myMarker;





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }




    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        LatLng MORNAR = new LatLng(43.5201139, 16.4282208);
        googleMap.setOnMarkerClickListener(this);


        mMap.addMarker(new MarkerOptions().position(MORNAR).title("Stari mornar"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(MORNAR));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MORNAR, 13));




    }
    @Override
    public boolean onMarkerClick(final Marker marker) {

        String name= marker.getTitle();

        if (name.equalsIgnoreCase("Stari mornar"))
        {
            openActivity3();
        }

    }
    public void openActivity3(){
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);
    }
}
Теги:

2 ответа

0

Измените прослушиватель кликов производителя на этот

@Override
public boolean onMarkerClick(final Marker marker) {

    String name= marker.getTitle();

    if (name.equalsIgnoreCase("Stari mornar"))
    {
        openActivity3();

        return true;
    }
   return false;

}

Здесь метод показывает, что он возвращает логическое значение.

Таким образом, если вы щелкнете маркер и функция вернет true, это означает, что событие click прошло успешно, и если оно вернет false, окна информации будут отображаться как обычно.

-1

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

@Override
public boolean onMarkerClick(final Marker marker) {

    String name= marker.getTitle();

    if (name.equalsIgnoreCase("Stari mornar"))
    {
        openActivity3();
    }

    // return true or false
}

Если вы вернете true, это означает, что вы нажали на маркер.

После средства обеспечения конфиденциальности вашей функции ("public") у вас есть возвращаемый тип, который в данном случае является логическим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню