我正在开发Android应用程序。我的应用程序应该在纵向和横向模式下工作。我通过将所有布局文件保留在layout-lan文件夹中来调整所有布局。但现在我的问题是功能,即当应用程序更改为横向模式时,我的参数值正在发生变化,因此我崩溃了。即我保留了一个计数器值,但转到port-lan时它显示错误的计数值。此外,功能也在发生变化。 请帮助我。
答案 0 :(得分:1)
每次旋转devide时,都会再次调用onCreate方法。您可以通过覆盖onSavedInstanceState来保存值,并将它们返回onRestoreInstanceState或onCreate方法。例如:
保存值:
public void onSaveInstanceState(Bundle outState) {
outState.putBoolean("booleanValue", true);
}
恢复该值(您也可以在onCreate中调用它):
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState != null && savedInstanceState.containsKey("booleanValue")) {
boolean myBoolean = savedInstanceState.getBoolean("booleanValue");
}
super.onRestoreInstanceState(savedInstanceState);
}
答案 1 :(得分:0)
每次方向更改时,您的活动都会重新开始。
您必须将您的值存储在onSaveInstanceState
中,并在onRestoreInstanceState
中恢复它们。您可以在此处找到详细信息:http://developer.android.com/guide/topics/resources/runtime-changes.html
答案 2 :(得分:0)
这些值会发生变化,因为活动在轮换期间被破坏并重新构建,
请查看开发者指南,了解如何保存您的活动状态。
http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState