我的活動中有6個(列表)片段。如果你點擊一個元素,VideoView將被啓動。視頻啓動後,我按下後退按鈕,應用程序完成完成活動,而不是返回到持有碎片的活動。在片段中使用VideoView的後退按鈕
在我的活動中,我使用ViewPager並設置適配器。
我知道當我在視頻中按下後退按鈕時,我的Activity的onBackPressed方法被調用。但是,如何在VideoView啓動時處理它,並返回到Activity?
我的活動中有6個(列表)片段。如果你點擊一個元素,VideoView將被啓動。視頻啓動後,我按下後退按鈕,應用程序完成完成活動,而不是返回到持有碎片的活動。在片段中使用VideoView的後退按鈕
在我的活動中,我使用ViewPager並設置適配器。
我知道當我在視頻中按下後退按鈕時,我的Activity的onBackPressed方法被調用。但是,如何在VideoView啓動時處理它,並返回到Activity?
你可以看看FragmentTransactions,以正確地允許backPress要回你的活動。
如果你想要一個簡單而「壞」的解決方案,你可以使用一個變量來知道用戶正在觀看的視頻,並覆蓋「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(),如果發生錯誤,則必須更正它到處。編程時複製/過去是一個不好的實踐。然而,當項目需要進展時,這可能是一個使其工作的臨時方式,但請注意,如果您進行了大量開發,您可能會後悔。