2011-01-28 88 views
1

我创建了一个包含两个编辑框的布局。在启动我的应用程序之后,我在两个编辑框中输入了一些文本,然后按下7和9按钮来旋转仿真器屏幕,并且我输入的文本仍然保留。但是我从文档中看到,在屏幕方向改变时,如果我不保存状态,活动将重新启动并且数据将消失。当我旋转模拟器屏幕时,活动不会丢失状态

我做错了什么改变屏幕的方向?我欢迎任何建议,因为我是Android新手。

回答

2

只要你给的EditText一个唯一的ID,Android是足够聪明保留文本你

报价从Mark Murphyhere

Android将自动处理的EditText的 内容上如果您使用所有默认设置 并且拥有所有ID为唯一的窗口小部件,则方向 会发生变化。

Source

1

您可以设置活动的行为,按手机的配置, onConfigurationChanged(配置NEWCONFIG) 是听者,通过它可以设置手机的行为。 http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration) 有关更多详细信息...

+0

这并没有真正回答这个问题。他们问为什么用户数据保存并重新加载时,它没有明确保存在代码中。 – 2011-01-28 13:26:10

0

当屏幕方向更改时(通常)重新创建活动。但是,在旧视图被销毁之前,将调用onSaveInstanceState方法,并在创建新视图之后调用onRestoreInstanceState方法。这允许编辑框保存其旧内容,并在新活动创建后重新加载它。

如果您不希望重新创建活动,请使用onConfigurationChanged侦听器和android:configChanges属性。

+0

感谢您的答案,但我没有明确地在onSaveInstaceState中保存我的活动状态。系统会自动保存..? – newbie 2011-01-28 13:36:34