2017-08-03 17 views
0

​​を統合したアプリを開発しました。今私は多くのピンをGoogleマップに設定しました。いずれかのピンをクリックすると、そのピンの詳細が1つのダイアログに表示されます。これはすべて完全に動作しています。これはimagesです。

問題点: -私はいずれかのマーカーをクリックしてダイアログを開きますが、2番目のマーカーをクリックすると、最初に却下されました。再度マーカーをクリックするとダイアログが開きますが、いずれかをクリックすると新しいダイアログが開きます。これは、マーカー(画像を見る)をクリックするたびに、そのマーカー関連(データを意味する)ダイアログが即座に開くということは可能ですか?ダイアログが既に開いているときに背景レイアウトをクリック

私はこの試みをdialog.setCanceledOnTouchOutside(true);で試みましたが、ダイアログのレイアウトを外側にクリックすると、ダイアログを閉じるだけです。

ご協力いただきありがとうございます。

これは、あなたが背景をクリックすることはできませんので、その後Viewがあなたのメインのレイアウトに追加されたダイアログを使用しているとき、私は、ダイアログ

Dialog mapMarkerDialog = null; 
private void showMapMarkerDialog(Marker marker) 
    { 
     try 
     { 
      mapMarkerDialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar); 
      mapMarkerDialog.setContentView(R.layout.dialog_map_info_window); 
      mapMarkerDialog.setCanceledOnTouchOutside(true); 

      RelativeLayout llMapClubDetailTop = (RelativeLayout)mapMarkerDialog.findViewById(R.id.llMapClubDetailTop); 
      LinearLayout llMapClubDetail = (LinearLayout)mapMarkerDialog.findViewById(R.id.llMapClubDetail); 

      ImageView imgMapDialogClubImage = (ImageView)mapMarkerDialog.findViewById(R.id.imgMapDialogClubImage); 
      TextView txtMapDialogClubName = (TextView)mapMarkerDialog.findViewById(R.id.txtMapDialogClubName); 
      TextView txtMapDialogClubLocation = (TextView)mapMarkerDialog.findViewById(R.id.txtMapDialogClubLocation); 
      TextView txtMapDialogClubDiscount = (TextView)mapMarkerDialog.findViewById(R.id.txtMapDialogClubDiscount); 


      llMapClubDetail.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        mapMarkerDialog.dismiss(); 
        mapMarkerDialog.cancel(); 
        //start new activity 
       } 
      }); 


      mapMarkerDialog.show(); 
     } 
     catch (Exception e) 
     { 
      Log.e(TAG, "***Error while call showMapMarkerDialog() method"); 
      e.printStackTrace(); 
     } 
    } 
+0

ダイアログの代わりに、ViewGroupを使用してこの情報を表示します。 visibilityプロパティを使用してViewGroupを表示および非表示にすることができます。 –

+0

@SureshKumarご返信ありがとうございますが、あなたは 'ViewGroup'についてさらにいくつかの情報を提供できますか? – Ninja

+0

ダイアログの代わりに 'popup window'を使います。 – Shailesh

答えて

1

を開くことができるダイアログ方法です。新しいビューを開く前にView(ダイアログ)を削除する必要があります。このタイプの機能のようにする必要がある場合は、Popup Windowを使用して任意のビューを表示することをお勧めします。

次のコードを試してください。これはちょうどあなたの要件に応じて使用することができますポップアップウィンドウを表示するだけです。

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View popuplayoutReject = inflater.inflate(R.layout.your_view, null); 

final PopupWindow popUpReject = new PopupWindow(popuplayoutReject, WindowManager.LayoutParams.FILL_PARENT, 
     WindowManager.LayoutParams.WRAP_CONTENT, false); 

popUpReject.setOutsideTouchable(true); 

popUpReject.showAtLocation(popuplayoutReject, Gravity.BOTTOM, 0, 0); 
+0

その作品Charms。これについてもう少し詳しくお聞かせください。 – Ninja

関連する問題