Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 屏幕方向更改强制重新输入数据_Android_Orientation_Android Edittext - Fatal编程技术网

Android 屏幕方向更改强制重新输入数据

Android 屏幕方向更改强制重新输入数据,android,orientation,android-edittext,Android,Orientation,Android Edittext,我正在开发一个简单的应用程序,只有一些活动,没有什么复杂的。我遇到的问题是,在我的一些活动中,我有EditText小部件,当屏幕旋转时,这些小部件会失去它们的值。它们仍然在视觉上(即在手机屏幕上)报告旋转前的值,但向代码报告其默认值 例如,我有一个带有EditText的活动,我输入一个数字,15,计算器开始计算,显示一个结果。如果此时我旋转到一个不同的方向,如预期的那样,活动将终止、重新加载并显示新的方向,我的值15仍然在EditText中,但是计算器(代码)的计算方式就像它是0一样,这是初始值

我正在开发一个简单的应用程序,只有一些活动,没有什么复杂的。我遇到的问题是,在我的一些活动中,我有EditText小部件,当屏幕旋转时,这些小部件会失去它们的值。它们仍然在视觉上(即在手机屏幕上)报告旋转前的值,但向代码报告其默认值

例如,我有一个带有EditText的活动,我输入一个数字,15,计算器开始计算,显示一个结果。如果此时我旋转到一个不同的方向,如预期的那样,活动将终止、重新加载并显示新的方向,我的值15仍然在EditText中,但是计算器(代码)的计算方式就像它是0一样,这是初始值。我没有尝试更改初始值以查看它是否真的从默认值提取,或者在将其转换为int时将其自身设置为0

如果我解释得不够好,请告诉我,如果需要,我可以添加源代码。
谢谢。

您什么时候读取这些值?视图状态由
活动
onRestoreInstanceState
的默认实现保留,该实现发生在
onStart
onPostCreate
之间。如果您在这之前读取了这些值,这将解释为什么您看到的是计算的默认值,而不是绘制屏幕后显示的值。

您是在处理方向更改,还是只是在经历默认的销毁->重新启动循环?(如果你需要的话,请参阅了解一些相关信息)我正在经历默认周期。我知道我昨天在文档中读了100遍,但直到你说了才点击。我将我的计算代码移动到onPostCreate中,它工作得很好。如果那是条蛇。。。。