0

我有一个包含一些按钮和一些片段的活动。

如果我单击按钮 A,我将显示片段“FragA”。当我在“FragA”中时,我可以执行一些操作,例如从图库中选择图片,选择图片后我需要留在“FragA”中。

但是当我选择图片时,我返回到 Activity 并且“FragA”被隐藏了。

如何执行一个动作并且仍然在同一个 Fragment 中或在 Activity 中显示正确的 Fragment?

4

1 回答 1

0

您可以使用修改此代码再次重新创建片段并在 Activity 中替换它:

if (currentState == STATE_MAIN_FRAGMENT) {
        return;
}
mainScreenFragment = (MainScreenFragment) getSupportFragmentManager().findFragmentByTag(MainScreenFragment.TAG);
if (mainScreenFragment == null) {
    mainScreenFragment = new MainScreenFragment();
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.flFragmentContainer, mainScreenFragment, MainScreenFragment.TAG);
fragmentTransaction.commit();

首先“if”检查是否设置了片段。这不是必需的,但这是一个很好的做法。它可以防止您在不需要时替换片段。

对我来说有一件事很奇怪。因为您说 <<"FragA" is hidden>> - 这意味着它已经设置但容器不可见?然后 yourFragmentContainer.setVisiblity(View.VISIBLE); 在活动结果中。

最后可以帮助您的是保留片段,这样它就不会被破坏并再次重新创建。一些有用的链接:

理解 Fragment 的 setRetainInstance(boolean)

http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)


或者您可以复制粘贴 Button 的 OnClickListener 中的内容,这样它也会在 onActivityResult 发生。

于 2013-10-25T15:21:49.147 回答