2016-04-08 1 views
0

Привет, мне удалось получить некоторые рекомендации с настройкой этого класса изначально, но произошла ошибка. Он показывает красный под запятой, когда я пытаюсь поместить LatLng в создание каждого объекта. Может ли кто-нибудь сказать мне, почему? Мне не хватает скобки или что-то еще или как мне отформатировать LatLng при вводе его в создание объекта?Вопросы, связанные с использованием LatLng в студии android

public class Cinema { 

    private GoogleMap googleMap; 
    private HashMap cinemaMarker; 

    String name; 
    String webSite; 
    LatLng position; 

    public Cinema(String name, String webSite, LatLng position){ 
     this.name = name; 
     this.webSite = webSite; 
     this.position = position; 
    } 

public String getName(){ 
     return name; 
    } 

    public String getWebSite(){ 
     return webSite; 
    } 

    public LatLng getPosition(){ 
     return position; 
    } 

    public MarkerOptions getMarker(){ 
     return new MarkerOptions().position(position).title(name); 
    } 

    List<Cinema> cinemas = new ArrayList<>(); 

    public void MockData(){ 
     cinemas.add(new Cinema("ODEON","www.odeon.co.uk/films/", (54.598693,-5.925955)); 
     cinemas.add(new Cinema("Movie House -Dublin Rd","www.moviehouse.co.uk/Movie/Cinema/1/dublin_road", (54.592211, -5.931512)); 
     cinemas.add(new Cinema("Queen's Film Theatre","queensfilmtheatre.com/Whats-On", (54.585406, -5.933929)); 
     cinemas.add(new Cinema("Strand Cinema","www.cinemas-online.co.uk/films-out-now/", (54.600542, -5.879803)); 
     cinemas.add(new Cinema("Odyssey Cinema","www.odysseycinemas.co.uk/en.aspx", (54.603835, -5.916253)); 
     cinemas.add(new Cinema("Omniplex Kennedy Centre","www.omniplex.ie/", (54.580723, -5.979174)); 
     cinemas.add(new Cinema("Movie House - City Side","www.moviehouse.co.uk/Movie/Cinema/2/city_side", (54.608512, -5.926765)); 

    } 

ответ

1

конструкторы в Java :)

cinemas.add(new Cinema("ODEON","www.odeon.co.uk/films/", new LatLng(54.598693,-5.925955)); 
+0

Спасибо! У меня также возникают проблемы с добавлением маркеров. Я поместил эту строку кода в новый класс, и он говорит, что нестатический метод не может ссылаться на статический контекст ... ошибка в методе getMarker() ... public void addMarkers() { // для каждый кинотеатр cinemaMarker.put (googleMap.addMarker (Cinema.getMarker()), кинотеатры); – user6176468

+0

@ user6176468 вы можете использовать статические методы с именем класса, но нестатические методы предоставляются только для объектов. Вызов конструктора объекта Cinema, как новый Cinema (params) и call getMarker() для этого объекта –

+0

@ user6176468 статические методы не могут поддерживать ссылку на объект, это означает, что они не знают, что такое «позиция» "и" title ", которые используются в методе getMarker() –

2

изменить все свои строки в MockData для того, чтобы позвонить в LatLng contructor:

cinemas.add(new Cinema("ODEON","www.odeon.co.uk/films/", new LatLng(54.598693,-5.925955)) 

Открытого Конструктора Резюме

LatLng(double latitude, double longitude)

0

Список параметров у вас есть для вашего метода Cinema являются-

  1. имени Строки 2. Строка 3. ВЕБСАЙТОВ, LatLng положения

Таким образом, вы должны передать эти вещи в метод При создании экземпляра Это. вы передаете cinemas.add(new Cinema("ODEON","www.odeon.co.uk/films/", (54.598693,-5.925955));

  • первый параметр "ODEON" является строка (Correct)
  • второй параметр "www.odeon.co.uk/films/" является строка (правильный)
  • третий параметр (54.598693,-5.925955) не является LatLng (неправильно)

, поэтому вам необходимо пройти latlng в третьем параметре и сделать этот пропуск

new LatLng(54.598693,-5.925955).

Надеюсь, что этот ответ поможет вам понять вашу ошибку.

 Смежные вопросы

  • Нет связанных вопросов^_^