Java 在Android中重新创建活动

Java 在Android中重新创建活动,java,android,Java,Android,在Android应用程序中,当您旋转屏幕时,会调用onCreate()绘制视图并创建对象。TextView对象恢复以前的文本,但ImageView对象不恢复。这有什么原因吗?任何答案都有助于我理解Android的工作原理:) 非常感谢,关于方向更改,整个活动将重新创建。如果要在方向更改后恢复数据,可以使用onSaveInstanceState和onRestoreInstanceState进行恢复。更改方向时,将调用onSaveInstanceState以将值保存在捆绑包中,并在重新创建活动后调用

在Android应用程序中,当您旋转屏幕时,会调用
onCreate()
绘制视图并创建对象。TextView对象恢复以前的文本,但ImageView对象不恢复。这有什么原因吗?任何答案都有助于我理解Android的工作原理:)


非常感谢,

关于方向更改,整个活动将重新创建。如果要在方向更改后恢复数据,可以使用onSaveInstanceState和onRestoreInstanceState进行恢复。更改方向时,将调用onSaveInstanceState以将值保存在捆绑包中,并在重新创建活动后调用OnRestoreInstanceState以再次从捆绑包中加载值。您可以这样使用:

  @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"); 
}

首先,如何获取和显示ImageView?屏幕旋转时发生的情况与屏幕旋转时发生的情况一定有所不同。如果您有视图的ID,则应为您还原视图的状态。为什么将文本还原为我的编辑值?嗨,Xaver。您的回答很好,但没有回答我的问题:为什么维护TextView数据而不是ImageView中的图像?您是否以编程方式设置ImageView中的图像?是的,但不是文本。这就是为什么不保存它。更改方向后,布局中设置的所有内容都将恢复,因为布局用于再次创建活动和片段。但是你按程序设置的东西丢失了。这就是为什么您需要在onSaveInstanceState中保存此信息,并在onRestoreInstanceState.mmmmmmmm中恢复它。好的,但是如果我将文本视图修改为“hello”,例如,在方向更改后,它会显示“hello”!这就是我困惑的地方。