I had asked one question before some day i.e. : Using fragment more than one time with new values with backstack maintain
My problem has been sought out ..but the old fragment is refreshing(loading) ..which is not required(as it contains paging) .I know the reason of refreshing the old fragment that is I have used FragmentTransaction.replace in goToFragmentWithBackStack method.If I will used FragmentTransaction.add in goToFragmentWithBackStack method, it will not work any more and the new data will be updated in the old fragment.
Something like this : A(old data)->B->A(new data) [AS I WANT ..EXPECTED RESULT] but shows if I used FragmentTransaction.replace in goToFragmentWithBackStack method: A(old data with loading/refreshing)->B->A(new data with loading/refreshing)
If I used FragmentTransaction.add in goToFragmentWithBackStack method: A(old data)->B->nothing...
If I check the backstack on back button pressed it shows something like :
If I used FragmentTransaction.replace in goToFragmentWithBackStack method: A(old data with loading/refreshing)<-B<-A(new data with loading/refreshing)(I WANT TO STOP REFRESHING THE OLD FRAGMENT)
If I used FragmentTransaction.add in goToFragmentWithBackStack method: A(with new data and old fragment)<-B<-A(blank nothing) (As old fragment A already is in container hence new data is setting in old fragment)
CONCLUTION: My main problem is that I want to stop refreshing data in old Fragment A on Back Pressed. With FragmentTransaction.add in goToFragmentWithBackStack method ,it is not working...
Here is my code :
public static void goToFragmentWithBackStack(Fragment fragment) {
Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
if (tmp != null && tmp.isVisible())
return;
ft = fm.beginTransaction();
ft.replace(R.id.content_frame, fragment, fragment.getClass().getName());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
currentTag = fragment.getClass().getName();
}
calling fragment:
LeftAndRightActivity.goToFragmentWithBackStack(new ExploreFragment(theWord,"#"));
The ExploreFragment:
public ExploreFragment(String data,String pattern) {
this.str_data = data;
this.str_pattern = pattern;
}
Now the flow of app is something like that I am going from ExploreFragment(1) to PostDetailFragment and then again ExploreFragment(2) with new data..(works fine)
Now when I returned back on pressing back button of device the old ExploreFragment(1) is loading again...I don't want to refresh the data of ExploreFragment(1) it should be only just resumed not refreshed...I hope you understand my problem..
Please help me..Thanks in advance..