我有一个播放视频的 fragment ,我启动了我的应用程序并且一切顺利,但是当我按下后退按钮并选择另一个视频文件播放时,我的 View 不播放视频。
VideoActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
A=this;
th = Thread.currentThread();
// OBTER URL DO VÍDEO
Bundle extras = getIntent().getExtras();
if (extras != null)
_videoURL = extras.getString("CAMINHO_ARQUIVO");
if (savedInstanceState == null)
{
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment
{
static private final int BUFFER_SIZE = 700;// Mb
static private final int NUM_FILES = 20;// Count files in cache dir
public PlaceholderFragment()
{}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_video, container, false);
frame1 = rootView.findViewById(R.id.frame1);
textureView = (VideoPlayer) rootView.findViewById(R.id.textureView1);
textProgress = (TextView) rootView.findViewById(R.id.textView1);
textureView.setVideoPath(_videoURL);
textureView.setMediaController(new mediac(A, frame1));
textureView.setSeekListener(new VideoPlayer.SeekListener()
{
@Override
public void onSeek(int msec)
{
//if (proxy != null)
//{
//proxy.seek = true;
//} // more speed for seeking
}
@Override
public void onSeekComplete(MediaPlayer mp)
{}
});
textureView
.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(final MediaPlayer mp)
{
textureView.start();
}
});
return rootView;
}
最佳答案
据我在您的代码中所见,如果 savedInstanceState
为空,您将创建 fragment 。因此,如果 Activity 没有被正确销毁,您将使用相同的 fragment 。
相反,从您的 onCreate()
中删除此部分,并在您每次导航到您的 VideoActivity 时创建 fragment 。
关于android - 如何销毁一个 fragment 然后创建一个新 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570482/