【问题标题】:How to destroy a fragment and then create a new?如何销毁一个片段然后创建一个新片段?
【发布时间】:2015-07-23 02:01:23
【问题描述】:

我有一个播放视频的片段,我启动了我的应用程序,一切都很顺利,但是当我按下后退按钮并选择另一个要播放的视频文件时,我的视图不播放视频。

视频活动

    @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;
    }

【问题讨论】:

    标签: android android-fragments video


    【解决方案1】:

    据我在您的代码中看到的,如果savedInstanceState 为空,您将创建片段。因此,如果活动没有正确销毁,您将使用相同的片段。

    相反,请从您的 onCreate() 中删除此部分,并在每次导航到 VideoActivity 时创建片段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2013-05-24
      相关资源
      最近更新 更多