在使用ViewModel旋转设备时保留EditText数据,可以通过以下步骤实现:
android:id="@+id/editText"
。public class MyViewModel extends ViewModel {
private MutableLiveData<String> editTextData = new MutableLiveData<>();
public void setEditTextData(String data) {
editTextData.setValue(data);
}
public LiveData<String> getEditTextData() {
return editTextData;
}
}
public class MyActivity extends AppCompatActivity {
private MyViewModel viewModel;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewModel = new ViewModelProvider(this).get(MyViewModel.class);
editText = findViewById(R.id.editText);
viewModel.getEditTextData().observe(this, new Observer<String>() {
@Override
public void onChanged(String data) {
editText.setText(data);
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
viewModel.setEditTextData(editText.getText().toString());
}
}
通过以上步骤,你可以在使用ViewModel旋转设备时保留EditText数据。这种方法的优势是简单易用,并且不需要手动处理保存和恢复数据的逻辑。它适用于各种需要保留数据的场景,如表单填写、搜索历史等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云