У меня есть только один фрагмент, прикрепленный к действию с использованием замены. Когда устройство через несколько секунд блокирует экран, а затем я его разблокирую, выполняется метод onItemSelected, назначенный некоторому счетчику, даже несмотря на то, что представления фрагментов (EditTexts и т. Д.) И выбранный элемент счетчика остаются прежними.
public class MyFragment extends Fragment {
private Spinner mySpinner;
public static MyFragment newInstance() {
return new MyFragment();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.some_layout, container, false);
mySpinner = (Spinner)view.findViewById(R.id.my_spinner);
List<String> items = new ArrayList<>();
items.add("Anything");
items.add("Anything");
items.add("Anything");
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(
getContext(),
android.R.layout.simple_spinner_item,
items);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getContext(), "Hello World", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
}
Каждый раз, когда я выбираю элемент, я получаю всплывающее сообщение «Hello World» (или любой другой метод или действие, назначенное слушателю), но когда устройство блокируется, а затем я разблокирую, я все равно получаю сообщение, как если бы метод onItemSelected назывался.
Я пытался возиться с логическими значениями и методами фрагмента onSaveInstanceState и onActivityCreated, но я не нашел способа остановить выполнение метода onItemSelected, когда устройство возвращается с заблокированного экрана.
myspinnerselecteditem = my.Spnner.getSecltedItem()
, и в этом случае будет иметь значение, что он был установлен несколько раз? - person MikeT   schedule 11.01.2017