我有一个带Frment的Android活动。当我的应用程序启动时,会加载一个列表视图,其中包含从服务器发送的10个元素。(简单请求)。
当我更改设备的方向时,活动会被重新创建,我还会看到带有加载列表视图请求的微调器。
如何禁止重新创建活动?
我已经设置了标志:
android:configChanges="orientation|keyboardHidden|screenSize"
配置更改时:
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
然后您想要覆盖
@Override
public void onConfigurationChanged(Configuration newConfig)
{
}
在你的活动中,用你想在方向/键盘隐藏/屏幕大小上做什么。
在清单中设置标志告诉应用程序您想自己处理这些配置更改。
当方向更改时,您需要覆盖onSaveInstanceState(Bundle savedInstanceState)并保持所需所有值的状态。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putString("jsonArrayString", jsonArrayStrin);
// etc.
}
此值将传递给onCreate和/或onRestoreInstanceState。您可以使用以下方法检索:
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// This bundle has also been passed to onCreate.
String myArrayString = savedInstanceState.getString("jsonArrayString");
}
希望这能帮助
如果不需要更改方向,也可以在清单中阻止它。只需在activity元素中指定属性:android:screenOrientation