1

更新#3

为了进一步了解这里发生了什么,我启动了通过 startActivityForResult 加载 VideoView 的 Activity,将值 (25) 作为预期的 requestCode 提供给它。调用 Activity 的 onActivityResult requestCode 不是不是 25。(它始终是 131097,我确信它是特定且一致的,仅作为测试期间内存使用的工件)。

更新#2

我在从 VideoView 活动返回时执行了强制回栈弹出,而不是沿片段视图弹出,而是弹出容器。诡异的。

轻微更新

我添加了

    FragmentManager fm = this.getFragmentManager();
    backCount = fm.getBackStackEntryCount();

在 onCreateView、onResume 和 onSaveInstanceState 上查看是否删除了 backstack 计数。它不是。所以......我猜backstack实际上并没有被删除,它只是不再被Back按钮访问了吗?几乎就好像片段的容器有焦点,而不是内容。或者其他的东西。我在这里很困惑。

结束更新

我之前问过一个类似的问题,但这有点更具体和奇怪的烦恼。

我有一系列片段,允许用户在各种分类的视频剪辑中进行选择。从视频剪辑视图开始,用户从“亮点”、“采访”等中进行选择。一旦选择了子类别,用户就选择了要观看的视频。从视频剪辑转到一个小节,然后单击“后退”按钮可以正常工作。但是,如果用户在小节中选择了一个视频,然后回击,他们将返回到小节(很好),如果他们再次回击,则没有任何反应。好像没有更多的backstack。

以下是相关代码:

后台创建:

protected void showSubmenu(BaseFragment fragment, String fragmentTagname) {
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.fragmentSubmenu, fragment, fragmentTagname);
        transaction.addToBackStack(null);
        //transaction.add(R.id.fragmentSubmenu, fragment, fragmentTagname);
        transaction.commit();
    }

从子菜单过渡到视频:

public void onListItemClick(ListView l, View v, int position, long id) {
    Video video = (Video) this.getListAdapter().getItem(position);
    String url = video.link.substring(29);;
    url = Kriptonic.getEncryptedURL(url);
    uri = Uri.parse(url);
    Intent intent = new Intent(_myActivity, VideoClips.class);
    startActivity(intent);
    }

一如既往,感谢您的宝贵时间。

4

0 回答 0