2017-03-16 4 views
-1

私のアクティビティには6個の(リスト)フラグメントがあります。要素をタップすると、VideoViewが開始されます。ビデオが開始された後、戻るボタンを押すと、アプリケーションは、フラグメントを保持しているアクティビティに戻るのではなく、アクティビティを完全に終了します。フラグメント内のVideoViewに戻るボタンを使用する

私のアクティビティでは、ViewPagerを使用してアダプタを設定しています。

ビデオ中に戻るボタンを押したときに、自分のアクティビティのonBackPressedメソッドが呼び出されていることがわかりました。しかし、VideoViewが開始されてアクティビティに戻るとき、どのように処理すればよいですか?

enter image description here

答えて

0

あなたは適切backPressが戻ってあなたの活動に取得できるようにするためにFragmentTransactionsの外観を取ることができます。

あなたは簡単ですが、したい場合は、「悪い」ソリューションは、あなたがそのように「onBackPressed」というユーザーがビデオを見ている知っている変数を使用して、オーバーライドすることができます:あなたは、クリックリスナーを定義

private VideoView isPlaying; 

、VideoView演奏登録:

isPlaying=video_playing; 

を次に、あなたのOnbackPressedを上書き:

@Override 
public void onBackPressed() { 
    if(isPlaying!=null) { 
     isPlaying.setVisibility(View.GONE); //Or anything that make it disappear 
     isPlaying=null; 
    } else { 
     super.onBackPressed();//If not, let's let the user quit the app correctly 
    } 
} 

他の場所でフラグメントを使用する必要がある場合は、onBackPressed()を他の場所と全く同じように扱わなければならず、バグの場合は修正する必要があるため、単純であっても処理するのは悪い方法ですどこにでも。コピー/過去はプログラミング時に悪いことです。 しかし、プロジェクトを進めなければならないときは、一時的に働かせるかもしれませんが、たくさん開発すれば後悔するかもしれません。

関連する問題