Como manter as entradas do usuário na mudança de orientação da tela com a biblioteca Android DataBinding?
Estou no começo de um novo projeto Android. Depois de brincar com o MVP no meu último projeto, quero implementar o MVVM com Data Binding dessa vez.
Tenho um problema ao entender o DataBinding corretamente quando se trata de alterações na configuração, como alteração na orientação da tela.
Todas as amostras de DataBinding disponíveis (tudo o que encontrei ao procurar "ligação de dados mvvm android") tem o mesmo problema:Quando insiro algo em um EditText e giro a tela, o EditText fica vazio depois.
Assim que tenho algo como o seguinte no meu layout, não consigo obter as visualizações (EditText neste caso) para restaurar seu estado após a alteração da rotação da tela.
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="vm"
type="com.example.app.TestViewModel" />
</data>
<EditText android:id="@+id/question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={vm.question}"
android:hint="Question" />
</layout>
Eu acho que isso se deve à atribuição de uma nova instância de modelo de exibição no método atividades onCreate todas as vezes.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityTestBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_test);
binding.setVm(new TestViewModel());
}
Como você lida com isso corretamente?
Não consigo desenvolver um aplicativo com vários formulários que esquecem todas as entradas do usuário na orientação da tela.