2016-07-12 5 views
0

私は2つのアクティビティ間でデータを渡しています。私はこれをしたい:ユーザーが地図上で長い間クリックすると、新しいInfoActivityウィンドウが開き、longclickが作成された緯度、経度、および都市が表示されます。Androidで長時間クリックして都市を表示する

私はすでに緯度と経度を過ぎていますが、都市部にこだわっています。

地図を長時間クリックした場所をどのように取得し、それを私のInfoActivityに渡すかを指定します。

すべてのヘルプは高く評価され:)

+1

「逆ジオコーディング」については、Googleを使用することをおすすめします。 –

+0

@Gerald Scheniderが行います。ありがとう。 – Kemo

答えて

1

を私はマップが長いマップが長いclicked.likeある街を取得するためのarg0

使用Geocoderクラスをクリックする都市になるだろうどのように:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
List<Address> allAddresses = geocoder.getFromLocation(
           arg0.latitude, arg0.longitude, 1); 

ここでは、長いクリックポイントに必要なallAddressesの詳細をすべて取得します。

Passing strings between activities in android

+0

このコードブロックをonMapLongClickに入れてみましたが、 'Geocoder geocoder = new Geocoder(this、Locale.getDefault());' - ジオコーダーのジオコーダー(android.content.context、Locale)を次のようにすることはできません(匿名com.google.android.gms.maps.android maps.onmaplongclicklistener) – Kemo

+1

@Kemo:アクティビティを使用している場合のように 'YourActivityName 'を使用する場合のように、' this 'の代わりに現在のアクティビティコンテキストを使用します。または 'Fragmentを使用している場合は、' this'の代わりに 'getActivity()'を使用してください。 –

+0

getActivity()が機能しました。私も 'try { ' try { ArrayList

allAddresses = geocoder]という、このエラー未処理の例外java.ioexceptionを 'geocoder.getFromLocation(arg0.latitude、arg0.longitude、1);に入れました。 getFromLocation(arg0.latitude、arg0.longitude、1); } catch(IOException e){ e.printStackTrace(); } ' – Kemo

1

あなたはいつもジオコーダを使用することができます:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
List<Address> addresses = geocoder.getFromLocation(arg0.latitude, arg0.longitude, 1); 
String cityName = addresses.get(0).getAddressLine(0); 

と2つのアクティビティの間で文字列を渡すために、私のInfoActivity

に渡す追加のポスト以下を参照してください。

関連する問題