我的活动中有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(),如果发生错误,则必须更正它到处。编程时复制/过去是一个不好的实践。然而,当项目需要进展时,这可能是一个使其工作的临时方式,但请注意,如果您进行了大量开发,您可能会后悔。