我有一個活動,有一些按鈕和一些片段。Android - 如何返回onActivityResult()後的當前片段?
如果我點擊按鈕A,我會顯示Fragment「FragA」。當我在「FragA」中時,我可以執行一些操作,比如從圖庫中選擇圖片,選擇圖片後我需要留在「FragA」中。
但是,當我選擇圖片時,我返回到活動並隱藏「FragA」。
如何執行一個動作,並仍然在同一個片段或在活動中顯示正確的片段?
我有一個活動,有一些按鈕和一些片段。Android - 如何返回onActivityResult()後的當前片段?
如果我點擊按鈕A,我會顯示Fragment「FragA」。當我在「FragA」中時,我可以執行一些操作,比如從圖庫中選擇圖片,選擇圖片後我需要留在「FragA」中。
但是,當我選擇圖片時,我返回到活動並隱藏「FragA」。
如何執行一個動作,並仍然在同一個片段或在活動中顯示正確的片段?
您可以再次重新片段,並使用此代碼的修改替換它在你的活動:
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();
第一「如果」檢查是否片段設置與否。這不是必需的,但這是一個很好的做法。它可以防止你在沒有必要時更換片段。
對我來說有一件奇怪的事情。因爲你說< <「FragA」隱藏>> - 這意味着它已經設置,但容器不可見?然後yourFragmentContainer.setVisiblity(View.VISIBLE);在活動結果。
而最後一件可以幫助你的是保留這個片段,這樣它就不會再被破壞和重新創建。一些有用的鏈接:
Understanding Fragment's setRetainInstance(boolean)
http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)
或者你也可以複製粘貼的是在你的按鈕的OnClickListener所以它發生onActivityResult了。
不錯!我已經做了一些關閉你!我創建了一個名爲'ACTIVE_FRAGMENT'的int,並在點擊按鈕時輸入值,之後我在onResumeFragments()中檢查它。謝謝哥們! – placplacboom