2016-05-24 7 views
0

私は断片の中にGoogleマップを持っています。私がフラグメントを使用しているときに私はアプリの外に行くと、私の帰りに私は地図を見ることができません。しかし、私が一般的に片方の断片から別の断片に移動しても問題はありません。私はナビゲーション・ドロワーを使用しているので、そのフラグメントを使用する必要があります。
解決方法はありますか?ありがとうございました。フラグメントクラス内のGoogleマップでonPause()を使用するにはどうすればよいですか?

ここは、onPause()に関連するその断片の一部です。私はコードでいくつかの間違いをしたと思うが、plzはそれを私に指摘する。

@Override 
public void onPause() { 
    super.onPause(); 
    final FragmentManager fragManager = this.getFragmentManager(); 
    final Fragment fragment = fragManager.findFragmentById(R.id.map1); 
    if(fragment!=null){ 
     fragManager.beginTransaction().remove(fragment).commit(); 



    } 
} 
@Override 
public void onDestroy() { 
    super.onDestroy(); 
    final FragmentManager fragManager = this.getFragmentManager(); 
    final Fragment fragment = fragManager.findFragmentById(R.id.map1); 
    if(fragment!=null){ 
     fragManager.beginTransaction().remove(fragment).commit(); 
    } 

} 
+0

なぜonPause()のマップフラグメントを削除するのですか? – GvSharma

+0

私は新しい学習者なので、それを知る知識は少なくなっています。私は交換しようとしましたが動作しませんでしたが、他の部分は動作しません。フラグメントをR.id.map1に置き換えようとしました。私はちょうど今何をしようと知らない – Rakib07003

+0

あなたのonPause()とコメントをコメントしてください。 – GvSharma

答えて

0

この例外を修正できます。マップを表示しているフラグメントで、onDestroyView()をオーバーライドします。

public void onDestroyView() { 
    super.onDestroyView(); 
    Fragment fragment = (getFragmentManager().findFragmentById(R.id.map)); 
    FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); 
    ft.remove(fragment); 
    ft.commit(); 
} 

と私はあなたが

は、この情報がお役に立てば幸いAPI 16から開始する必要があると思います。

+0

動作しません。私はgetSupportFragmentManagerをgetFragmentManagerに変更する必要がありました。私は同じ問題が発生し、実行時例外が発生し、主なアクティビティは破棄されます – Rakib07003

+0

"AppCompatActivity"を使用してください。 – GvSharma

+0

AppCompatActivityを使用するにはどうすればいいですか?私は断片を使用しており、私はそれを残すことはできません、私はナビゲーション引き出しのためにそれが必要です – Rakib07003

0

最後に私は解決策を得ました。今、それは動作している、アプリはもうクラッシュしません。

@Override 
public void onDestroyView() { 
    super.onDestroyView(); 
    try{ 
      MapFragment fragment = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)); 
      FragmentTransaction fragTran = getActivity().getFragmentManager().beginTransaction(); 
      ft.remove(fragment); 
      ft.commit(); 
     }catch(Exception e){ 
     } 
} 
関連する問題