为什么不从onCreate()函数内部执行初始化

时间:2014-10-23 18:38:49

标签: android android-lifecycle

在启动活动时从onCreate()执行以下行:

textView.setText("abc");  
checkBox.setChecked(true);

我无法理解为什么这些线条在方向发生变化时不会改变字段值。调用该函数,我可以看到它,但值不会改变。

谢谢。

添加更多详细信息。当活动开始并且onCreate首次执行时,textView和checkBox都被初始化(" abc"和true)。然后我手动更新设备模拟器中两个字段的值并更改屏幕方向。再次调用OnCreate。但这次没有更新这些值(" abc"和true)并保持不变。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    checkBox = (CheckBox) findViewById(R.id.checkBox1);
    EditText editText= (EditText) findViewById (R.id.editText1);

    editText.setText("abc");        
    checkBox.setChecked(true);

    Toast.makeText(MainActivity.this, "in onCreate.", Toast.LENGTH_SHORT).show();


}

1 个答案:

答案 0 :(得分:1)

您的textView和checkBox稍后会在onRestoreInstanceState中恢复为之前的值。你可以在那里读到:

http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState%28android.os.Bundle%29