0

InfoWindow (マーカーのダイアログ) のスニペットのデータを送信したいのですが、クラスMarkerOptionsは、ウィンドウの本体のテキストを設定するメソッド.snippet(String)しか定義していません

今、私はこのエスカモタージュを使用しています:

    map.addMarker( 
    new MarkerOptions()
        .title(title)
        .snippet(m.getID() + " " + m.getVel().toString() + " " + m.getTime() + " " + color));

[...]

   String[] s = marker.getSnippet().split(" ");
   id = s[0];           
   vel = s[1];
   time = s[2];
   color = s[3];

しかし、素晴らしい解決策ではありません。

他者モードでデータを送信できますか? MarkerOptions を再定義してカスタマイズできますか?

4

3 に答える 3

3

Gson Libを使用して、オブジェクトをjsonに変換し、jsonをスニペットに設定できます。解析中に、そのjsonをオブジェクトに直接変換できます。これが最適なソリューションです

于 2013-07-16T09:05:38.700 に答える
1

他者モードでデータを送信できますか?

はい。通常の使用方法は

    private Map<Marker, YourModel> markerToModelMapping;

マーカーを追加するときは、このマップ内にも配置します。

その後、GoogleMapコールバックで:

    YourModel data = markerToModelMapping.get(marker_method_param);

また、とメソッドを追加するAndroid Maps Extensionsを試すこともできます。これにより、 を使用せずに任意のオブジェクトを直接 に割り当てることができます。Marker.getDataMarker.setDataMarkerMap

MarkerOptions を再定義してカスタマイズできますか?

いいえ。

于 2013-07-16T09:05:07.890 に答える
0

著者の最終的な解決策 (質問の編集から抽出):

マーカーを JSON として送信します。

String Json = new Gson().toJson(myMarkerInfo);
map.addMarker(new MarkerOptions().snippet(Json));

JSON を取得します。

Gson gson = new GsonBuilder().create(); 
MarkerInfo m = gson.fromJson(marker.getSnippet(), MarkerInfo.class);
于 2015-11-03T09:33:33.237 に答える