2016-04-08 16 views
0

こんにちは私はこのクラスの初期設定でいくつかのガイダンスを得ることができましたが、エラーが発生しています。 LatLngを各オブジェクトの作成に入れようとすると、コンマの下に赤色で表示されます。なぜ誰かが私に言うことができますか?ブラケットや何かがないか、またはLatLngをオブジェクトの作成に入力するときにどのように書式を設定しますか?androidスタジオでLatLngを使用している問題

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(){ // for各映画館 cinemaMarker.put(googleMap.addMarker(Cinema.getMarker())、cinemas); – user6176468

+0

@ user6176468クラス名で静的メソッドを使用できますが、非静的メソッドはオブジェクトに対してのみ提供されます。このオブジェクトの新しいCinema(params)やgetMarker()などのシネマオブジェクトのコンストラクタを呼び出す –

+0

@ user6176468静的メソッドは、オブジェクトへの参照を保持できません。 getMarker()メソッドで使用される "title"および "title" –

2

変更で使用コンストラクタのLatLng contructorを呼び出すためにMockData内のすべてのあなたのライン:

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

公開コンストラクタの概要

LatLng(double latitude, double longitude)

0

、あなたがインスタンス化するときの方法にこれらの事を渡す必要が

ので

  1. 文字列名2. String型のウェブサイト3.緯度経度の位置をare- Cinemaあなたの方法を持っているパラメータリストそれ。あなたは cinemas.add(new Cinema("ODEON","www.odeon.co.uk/films/", (54.598693,-5.925955));

    • "ODEON"が(正しい)文字列である最初のパラメータを渡している
    • 二番目のパラメータ"www.odeon.co.uk/films/"は(正しい)文字列が(間違った)
    緯度経度ない
  2. 三番目のパラメータ(54.598693,-5.925955)がされています

    したがって、3番目のパラメータにlatlngを渡して、このパスを実行する必要があります。

    new LatLng(54.598693,-5.925955)

    この回答をお寄せいただきありがとうございます。

関連する問題