2017-12-28 16 views
0

ダイアログを開いたときにこの問題に悩まされていました。 。 この問題を解決するには、いくつかの提案をしてください。 ありがとうございます。致命的な例外:メインプロセス:バイナリXMLファイルライン#81:バイナリXMLファイルライン#81:クラスフラグメントを膨張させるエラー

これは私のxmlです -

    try { 
         FragmentManager myFragmentManager = getActivity().getSupportFragmentManager(); 

         SupportMapFragment mySupportMapFragment 
           = (SupportMapFragment) myFragmentManager.findFragmentById(R.id.map_container); 


         mySupportMapFragment.getMapAsync(
           new OnMapReadyCallback() { 
            @Override 
            public void onMapReady(GoogleMap mGoogleMap) { 
             googleMap = mGoogleMap; 
             AppDelegate.LogT("Google Map ==" + googleMap); 
             showMap(); 
            } 
           } 
         ); 
        } catch (Exception e) { 
         AppDelegate.LogE(e); 
        } 
+1

レイアウトコードを追加できますか? – R2R

+2

youreにXmlコードを追加 –

+0

xmlコードの全部のタグを81行に分けてご記入ください。簡単にわかるように –

答えて

1

私はダイアログを開いたときに、それが正常に動作し、私は2番目の時間をクリックすると それは

をクラッシュ - ここで

   <fragment 
        android:id="@+id/map_container" 
        android:name="com.google.android.gms.maps.SupportMapFragment" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 

        android:background="@color/white" /> 

は私のJavaコードはあります

ダイアログが開いたらフラグメントが膨張します。それを2回目に開くと、既に膨張している2回目に膨張します。以下のコードを試してください。これで、ダイアログの終了時にフラグメントが削除されます。

ここでは、削除でフラグメントオブジェクトを追加します。

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
      @Override 
      public void onDismiss(final DialogInterface arg0) { 
       // do something 
       getFragmentManager().beginTransaction().remove(SupportMapFragment).commit(); 


      } 
     }); 
+0

ダイアログとフラグメントの初期化の後にこのコードを使用してください。 –

+1

ありがとうございます:) – TechValens

2

またはあなただけ行うことができます:唯一

を膨らませるよりも、nullの場合

//:

この

SupportMapFragment mySupportMapFragment; 

などのクラスで、後でそれを膨らませるの定義

if(mSupportMapFragment==null) 
    { 
     mySupportMapFragmen = (SupportMapFragment) myFragmentManager.findFragmentById(R.id.map_container); 
    } 
関連する問題