В моем файле макета фрагмента у меня есть счетчик:
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/sp_week"
android:layout_width="150dp"
android:layout_height="50dp"
android:entries="@array/week"
android:paddingLeft="20dp"
android:selectedItemPosition="@={TimeSheetFragViewModel.selectedWeek}">
И в классе TimeSheetFragViewModel я объявил selectedWeek следующим образом:
public MutableLiveData<Integer> selectedWeek = new MutableLiveData<>();
public int getSelectedWeek() {
if(selectedWeek.getValue() == null) return 0;
return selectedWeek.getValue();
}
public void setSelectedWeek(int value) {
selectedWeek.setValue(value);
}
В My Fragment я поместил наблюдателя в onActivityCreated для таких живых данных, как это:
timeSheetFragViewModel.selectedWeek.observe(this, new Observer<Integer>() {
@Override
public void onChanged(@Nullable Integer integer) {
Log.d("DEBUG", "its called");
}
});
когда фрагмент загружается впервые, метод onChanged вызывается один раз. Что я думаю, это нормально. Однако, когда я поворачиваю экран, метод onChanged вызывается два раза. Мне нужно объяснение, почему это происходит.