Seleção de configuração do Android Spinner com ligação bidirecional

Estou lutando para obter algumas funcionalidades para trabalhar com os giradores do Android quando configurados com a ligação de dados bidirecional. Gostaria de definir o valor inicial do girador através da ligação de dados bidirecional emandroid:selectedItemPosition. As entradas giratórias são inicializadas pelo ViewModel e são preenchidas corretamente, portanto, a ligação de dados parece estar funcionando corretamente.

O problema está na ligação bidirecional deselectedItemPosition. A variável é inicializada para 5 pelo ViewModel, mas o item selecionado do girador permanece em 0 (o primeiro item). Ao depurar, parece que o valor de ObservableInt é inicialmente 5 (conforme definido), mas é redefinido para zero durante a segunda fase de executeBindings.

Qualquer ajuda seria apreciada.

test_spinner_activity.xml

<layout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable name="viewModel"
                  type="com.aapp.viewmodel.TestSpinnerViewModel"/>
    </data>
    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content">
       <android.support.v7.widget.AppCompatSpinner
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/sTimeHourSpinner"
            android:selectedItemPosition="@={viewModel.startHourIdx}"
            android:entries="@{viewModel.startTimeHourSelections}"/>
    </LinearLayout>
</layout>

TestSpinnerViewModel.java

public class TestSpinnerViewModel {
    public final ObservableArrayList<String> startTimeHourSelections = new ObservableArrayList<>();
    public final ObservableInt startHourIdx = new ObservableInt();

    public TestSpinnerViewModel(Context context) {
        this.mContext = context;

        for (int i=0; i < 24; i++) {
            int hour = i;
            startTimeHourSelections.add(df.format(hour));
        }
        startHourIdx.set(5);
    }
}

TestSpinnerActivity.java

public class TestSpinnerActivity extends AppCompatActivity {
    private TestSpinnerActivityBinding binding;
    private TestSpinnerViewModel mTestSpinnerViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = DataBindingUtil.bind(findViewById(R.id.test_spinner));
        mTestSpinnerViewModel = new TestSpinnerViewModel(this);
        binding.setViewModel(mTestSpinnerViewModel);
    }

Estou usando o Android Studio 2.2.2 e a ligação de dados está ativada.

questionAnswers(2)

yourAnswerToTheQuestion