在Android应用中,当您旋转屏幕时,会调用onCreate()
来绘制视图并创建对象。 TextView对象恢复以前的文本,但ImageView对象不恢复。这有什么理由吗?任何答案都可以帮助我理解Android的工作方式:)
非常感谢你,
答案 0 :(得分:1)
在方向更改时,将重新创建整个活动。如果要在方向更改后恢复数据,可以使用onSaveInstanceState和onRestoreInstanceState执行此操作。更改方向时,调用onSaveInstanceState以在Bundle中保存值,并在重新创建onRestoreInstaceState之后调用,以再次从Bundle加载值。您可以这样使用:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// "Value" is a tag with which you can load the String again in onRestoreInstanceState.
savedInstanceState.putString("Value", this.stringToSave);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Use the tag "Value" to load the String again.
this.stringToSave = savedInstanceState.getString("Value");
}