Fragment Android, revenir sans recréer / recharger Fragment

J'ai vu pas mal de questions sur DONC sur les Fragments et encore je n'arrive pas à comprendre si ce que je veux faire est possible, et plus encore si mon modèle de conception est juste imparfait et j'ai besoin de re-travailler l'ensemble du processus. En gros, comme la plupart des questions qui ont été posées, j'ai une ActionBar avec NavigationTabs (à l'aide de ActionBarSherlock), puis à l'intérieur de chaque Onglet, il y a un FragementActivity et puis le FragmentActivities pousser de nouveaux Fragments, lorsqu'une ligne est sélectionnée (je suis en train de re-créer un Projet iOS à Android et c'est seulement une base de Navigation en fonction de l'application avec quelques onglets qui peuvent consulter des informations spécifiques). Quand je clique sur le bouton retour du téléphone le Fragment précédent est chargé, mais le Fragment re-crée lui-même (ainsi, les WebServices sont de nouveau appelée pour chaque vue) et ce n'est pas nécessaire étant donné que les informations ne changera pas dans la vue précédente lorsque vous allez vers l'arrière. Donc, fondamentalement, ce que je veux savoir comment puis-je configurer mon Fragments de sorte que lorsque j'appuie sur le bouton de retour sur le téléphone, le Fragment précédent est juste tiré vers le haut avec la précédente éléments déjà créés. Ci-dessous mon code actuel :

    //This is from my FragmentActivity Class that contains the ActionBar and Tab Selection Control
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//TODO Auto-generated method stub
int selectedTab = tab.getPosition();
if (selectedTab == 0) {
SalesMainScreen salesScreen = new SalesMainScreen();
ft.replace(R.id.content, salesScreen);
}
else if (selectedTab == 1) {
ClientMainScreen clientScreen = new ClientMainScreen();
ft.replace(R.id.content, clientScreen);
}.....
//This is within the ClientMainScreen Fragment Class, which handles moving to the Detail Fragment
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Do something if Row is clicked
try{
String selectedClientName = clientObject.getString("ClientName");
String selectedClientID = clientObject.getString("ClientID");
String selectedValue = clientObject.getString("ClientValue");
transaction = getFragmentManager().beginTransaction();
ClientDetailScreen detailScreen = new ClientDetailScreen();
detailScreen.clientID = selectedClientID;
detailScreen.clientName = selectedClientName;
detailScreen.clientValue = selectedValue;
int currentID = ((ViewGroup)getView().getParent()).getId();
transaction.replace(currentID,detailScreen);
transaction.addToBackStack(null);
transaction.commit();
}
catch (Exception e) {
e.printStackTrace();
}
}
});....
//And then this is the Client Detail Fragment, with the method being called to Call the Web Service and create thew (since what is displayed on this screen is dependent on what is found in the Web Service
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) {
return inflater.inflate(R.layout.clientdetailscreen, group, false);
}
@Override
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//Setup Preferences File Link
this.preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
//initialize the table object
mainTable = (TableLayout)getActivity().findViewById(R.id.mainTable);
//setup the detail table
setupRelatedClientSection();
}

Le Client de Détail de l'Écran peut puis de descendre une fois de plus, en utilisant la même méthode que le Client Principal de l'Écran, mais quand je reviens à partir de ce nouvel écran pour l'Écran de Détail de la seuptRelatedClientSection() la méthode est appelée à nouveau et ainsi de l'ensemble du Fragment est reconstruit quand vraiment j'ai juste envie de se tirer une version enregistrée de l'écran. Est-ce possible avec ma configuration actuelle, ou ai-je cette approche dans le mauvais sens?

source d'informationauteur Sal Aldana