2013-11-20 159 views
0

在Android应用程序中,当您旋转屏幕时,将调用onCreate()来绘制视图并创建对象。 TextView对象恢复以前的文本,但不ImageView对象。这是有原因的吗?任何的回答会帮助我了解的Android是如何工作的:)在Android中重新创建活动

太感谢你了,

+0

如何获取并显示ImageView?屏幕旋转之间必然存在一些差异,并发生什么。 –

+0

如果您有该视图的ID,则应恢复其状态 – dymmeh

+0

为什么文本会恢复到我的编辑值? –

回答

1

与方向改变整个活动被重建。如果要在方向更改后恢复数据,可以使用onSaveInstanceState和onRestoreInstanceState来完成。当您更改方向时onSaveInstanceState被调用以保存Bundle中的值,并且在重新创建Activity之后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"); 
} 
+0

Hi Xaver。你的答案很好,但没有回应我的问题:为什么TextView数据被维护,但不是ImageView中的图像? –

+0

您是否以编程方式设置ImageView中的图像? –

+0

是的,但不是文字。 –