为什么onCreate在方向改变时再次重新加载

时间:2013-02-19 07:33:18

标签: android oncreate

目前我正在设计一个应用程序,其中列表中有一个列表和字母滚动条。要在列表中加载数据,我在onCreate中调用一个方法,并调用一个方法来为列表构建字母滚动条。现在我的问题是,当我改变方向时,onCreate方法再次调用,因为内部方法也同时再次调用。但我不想再调用将数据加载到列表中的方法。表示在更改方向时不应再次调用加载数据的方法,而应该再次调用构建滚动条的方法。

请告诉我如何做到这一点。

提前致谢

3 个答案:

答案 0 :(得分:4)

您可以添加:

android:configChanges="orientation"

在Manifest中为必需的Activity标记

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    //reload your ScrollBars by checking the newConfig
}

答案 1 :(得分:2)

这是因为android假定已经创建了一个新活动。

android清单

内的活动部分使用 android:configChanges =“orientation”

并且不要忘记覆盖此方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);    
}

然后将在方向更改时调用此方法。在此代码中执行您要执行的操作。

答案 2 :(得分:0)

您可以在活动清单中添加android:configChanges =“orientation”并手动设置contentView或通过覆盖OnConfigurationChanged来更改布局