我创建了一个带有两个编辑框的布局。启动我的应用程序后,我在两个编辑框中输入一些文本,然后按7和9按钮旋转模拟器屏幕,我输入的文本仍然保留。但我从文档中读到,在屏幕方向改变时,如果我不保存状态,活动将重新启动并且数据将消失。
我是否做错了改变屏幕方向?我欢迎任何建议,因为我是Android的新手。
答案 0 :(得分:2)
只要您为EditText提供唯一ID,Android就足够聪明地为您保留文字
引自Mark Murphy here:
Android会自动处理 方向上的EditText的内容 如果您使用所有默认值,则更改 并拥有所有唯一ID标识的小部件。
答案 1 :(得分:1)
您可以根据手机配置设置活动的行为, onConfigurationChanged(配置newConfig) 是列表工具,您可以通过它来设置手机的行为。 http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration) 了解更多详情...
答案 2 :(得分:0)
当屏幕方向改变时,(通常)重新创建活动。但是,在销毁旧视图之前,将调用onSaveInstanceState
方法,并在创建新视图后调用onRestoreInstanceState
方法。这允许编辑框保存其旧内容,并在创建新活动后重新加载它。
如果您不想重新创建活动,请使用onConfigurationChanged
监听器和android:configChanges
属性。