2017-03-16 51 views
-1

我的活動中有6個(列表)片段。如果你點擊一個元素,VideoView將被啓動。視頻啓動後,我按下後退按鈕,應用程序完成完成活動,而不是返回到持有碎片的活動。在片段中使用VideoView的後退按鈕

在我的活動中,我使用ViewPager並設置適配器。

我知道當我在視頻中按下後退按鈕時,我的Activity的onBackPressed方法被調用。但是,如何在VideoView啓動時處理它,並返回到Activity?

enter image description here

回答

0

你可以看看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(),如果發生錯誤,則必須更正它到處。編程時複製/過去是一個不好的實踐。然而,當項目需要進展時,這可能是一個使其工作的臨時方式,但請注意,如果您進行了大量開發,您可能會後悔。