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;
}