我的理解是,当您更改设备方向时,您的应用程序会被销毁并再次创建。这意味着 onCreate() 应该在我每次旋转设备时运行。
我试图在每次创建应用程序时设置一个 EditText,包括每当屏幕旋转时。所以,我启动应用程序,文本字段显示“Bap”。然后我将字段的内容更改为“Boop”,然后旋转屏幕。我希望该字段现在会说“Bap”,但事实并非如此,它在我更改它之后,在方向更改之前保持不变。为什么是这样?
我的 onCreate() 看起来像这样:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText)findViewById(R.id.edit_message);
editText.setText("Bap", TextView.BufferType.EDITABLE);
}
值得注意的是,如果我将 setText() 调用移到 onResume() 中,一切都会按我的预期工作,每次旋转设备时都会重置文本字段。
注意:我意识到已经提出了类似的问题,但给出的答案并不能真正解释为什么会发生这种行为。