0

マップapiを使用するアプリケーションを作成しています。ユーザがマーカーを作成したときにカスタムポップアップアクティビティを作成したいと思います(一般的なyes/noダイアログではありません)。私がやりたいことはある:ダイアログの代わりにアンドロイドのカスタムポップアップアクティビティ

  1. それがこの活動ディスプレイ緯度とLANGの代わりに対話
  2. の新しいアクティビティを開いたときに、ユーザーlongclicksマップ上の、テキスト、およびはい/いいえボタンを入力するフィールドがあり
  3. ユーザーがクリックした場合に何がそうでないユーザーが作成したマーカーをクリックしたときに
  4. が、それは、緯度LNGと入力したテキストを表示する場合
  5. はいマーカーが固定されていない

私の現在のコード:

//Add marker on long click 
    mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

    @Override 
    public void onMapLongClick(LatLng arg0) { 

     Intent intent = new Intent(getActivity(), CreateRestautantActivity.class); 
     startActivity(intent); 

     marker = mMap.addMarker(new MarkerOptions() 
       .icon(BitmapDescriptorFactory.fromResource(R.drawable.custom_marker)) 
       .position(
         new LatLng(arg0.latitude, 
           arg0.longitude)) 
       .visible(true)); 

     } 
    }); 

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

+0

あなたがマップ再び戻ってくるときに再びそのマップをリロードするための別のアクティビティを作成する場合は、なぜあなたは、むしろ活動を開くカスタムダイアログを使用していません!だから私はこのよりもカスタムダイアログを提案するだろう。 –

+0

@Jhaman Das私はこのポップアップを拡張する予定です - 日時オプションを追加し、いくつかの友達にタグを付け、チャットを有効にするなど、これをアクティビティとして行う方が良いと思いました。 – Kemo

答えて

1

は、[OK]を、多分私はすべての詳細を得たが、中にはなかったですそのような場合は次のようにします:

1.OnMapLongClickListenerを使用してください。その後、onMapLongClick()であなたは何でもできます。 LatLngオブジェクトはlatitudelongitudeです - Bundleに入れるか、それ以外の方法で新しいActivityに渡すことができます。
たとえば、this投稿を参照できます。
Markerを作成し、Activityにフィールドとして保存します。

2.xmlを新規ActivityにしてsetContentView()で使用するのは簡単です。前の手順で渡された引数をとり、latlngフィールドに入れます。あなたのボタンにOnClickListenerを入れてください。

ActivityStartActivityForResultメソッドで開始し、新しいActivityの結果を返すことができます。 また、stackoverflowに関する多くの情報があります。 For example this.
次に、onActivityResult()で、あなたのMarkerにいくつかの措置をとることができます(たとえば、削除してください)。

4.使用OnMarkerClickListener - あなたはgetPosition()を呼び出すことができMarkerからonMarkerClick(Marker marker)で - そしてそれからlatlngを取ります。

あなたはより多くの詳細が必要な場合は、私に知らせ;)

+0

これは私が探していたもののように見えます、これはありがとうございます。私は私の質問に私の現在のコードを追加しました。この質問をする前に私がしたことです。私はソフトウェア開発の初心者ですので、それほど多くはありません。私が立ち往生すれば私はあなたに知らせるでしょう。もう一度ありがとう:) – Kemo

+1

U welcome;)また、フラグメント(またはDialogFragment、@naschのように)を将来使用するために考慮してください。必要なだけ複雑になる可能性があります。はじめて使用するのは難しいかもしれませんが、アクティビティーの代わりにフラグメントを使用すると、アプリケーションの柔軟性が向上します。 –

+0

しかし、初めはアクティビティでも作るのが良いでしょう) –

1

あなたはDialogFragmentを使用する必要があります。これにより、ダイアログの外観と機能をカスタマイズすることができます。

それらを使用する方法についてのAndroidブログの記事:http://android-developers.blogspot.com/2012/05/using-dialogfragments.html

参考:https://developer.android.com/reference/android/app/DialogFragment.html

他のいくつかのチュートリアル/例:https://www.google.com/search?q=dialogfragment

+0

私はこのポップアップをもっと複雑にする計画をしているので、ダイアログを使用したくなかった。日付/時刻オプションを追加したり、友人にポップアップダイアログにタグを付けたり、チャットを有効にしたりするなど、これを活動として行う方がよい。 – Kemo

+1

あなたは 'DialogFragment'でできることは何でもできます。私は、これが2つのアクティビティ間のナビゲーションを管理しようとするよりはずっと簡単だと思います。 – nasch

+0

私の最大の関心事は、DialogueFragmentから連絡先ダイアログを開く必要があるということでした(マーカーにタグを付ける友人を選択するオプションを追加すると)。それはやってはならないことのように思えました。説明をありがとう、それは本当に役立ちます:) – Kemo

関連する問題