我的活动有一些按钮和一些片段。
如果我点击按钮A,我将显示片段“FragA”。当我在“FragA”时,我可以执行一些操作,例如从画廊中选择一张图片,我需要在选择图片后留在“FragA”。
但是当我选择图片时,我会返回Activity并隐藏“FragA”。
如何执行操作并仍然在相同的片段中或在Activity中显示正确的片段?
答案 0 :(得分:1)
您可以再次重新创建片段,并使用此代码的修改将其替换为您的活动:
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”被隐藏>> - 这意味着它已经设置但容器不可见?然后是yourFragmentContainer.setVisiblity(View.VISIBLE);在活动结果。
最后一件可以帮助你的事情就是保留片段,这样它就不会被破坏并再次重建。一些有用的链接:
Understanding Fragment's setRetainInstance(boolean)
http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)
或者您可以复制粘贴Button的OnClickListener中的内容,以便在onActivityResult上发生。