Java 尝试读取UI以持久化活动数据

Java 尝试读取UI以持久化活动数据,java,android,Java,Android,由于我的应用程序没有任何未由UI表示的数据,因此我尝试读取UI小部件,以便在屏幕旋转等事件发生时恢复底层“模型”对象的状态。它似乎对EditText不起作用,但对微调器起作用,这似乎很奇怪。以下是一些代码片段: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ..

由于我的应用程序没有任何未由UI表示的数据,因此我尝试读取UI小部件,以便在屏幕旋转等事件发生时恢复底层“模型”对象的状态。它似乎对EditText不起作用,但对微调器起作用,这似乎很奇怪。以下是一些代码片段:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ....
    metalSpinner = (Spinner) findViewById(R.id.metal_spinner);
    ....
    lengthText = (EditText) findViewById(R.id.length_edittext);
    ....
    createAndInitializeModel();
}

private void createAndInitializeModel() {
    vdropModel = new VdropModel();
    ....
    String al = (String) (metalSpinner.getSelectedItem());
    vdropModel.setAlum(al.equals("Aluminum"));
    ....
    if (!(lengthText.getText().toString().equals(""))) {
        vdropModel.setLengthInFeet(Double.parseDouble(lengthText.getText()
                .toString()));
    }
}

由于某些我并不清楚的原因,createAndInitializeModel()中的“if”语句在屏幕方向发生更改后,即使小部件仍在显示一个值,并且vdropModel也不会恢复,其计算结果始终为false。但是,微调器小部件中的值会被恢复。这对我来说没有意义,有什么想法吗?

在清单中将活动的配置更改设置为

android:configChanges="orientation"