I have:
Fragment 1 that contains spinner of categories ,imageView.
Fragment 2 contains back button.
At the beginning I select a value of spinner category after that when I download the picture from gallery the value of the spinner changes and returns to its initial position 0 and it's the same problem when I click button back on fragment2.
I was tinking using spinner.setSelection(poisition) but I dont know where shoud I make it in fragment!!
So How can I keep the selected value of spinner even if I get the image from gallery or I click on back button?
Source of CrateView:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View rootView = inflater.inflate(R.layout.fragment_add_book_photos,
            container, false);
    auth = FirebaseAuth.getInstance();
    mDatabase = FirebaseDatabase.getInstance();
    myRef = mDatabase.getReference("categories");
    spinnerCat = (Spinner) rootView.findViewById(R.id.spinner_cat_book);
    selectImage = (ImageView) rootView.findViewById(R.id.book_picture);
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            final List<String> catListBook = new ArrayList<String>();
            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                Categoriesbook book = snapshot.getValue(Categoriesbook.class);
                String catBook = book.getNom_cat();
                catListBook.add(catBook);
            }
            ArrayAdapter<String> catAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, catListBook);
            spinnerCat.setAdapter(catAdapter);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
            System.out.println("The read failed: " + databaseError.getMessage());
        }
    });
    spinnerCat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            catlivre = (String) parent.getItemAtPosition(position);
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
    selectImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showFileChooser();
        }
    });
    return rootView;
}