0

我有一个带有 Fragment 的 Android Activity。当我的应用程序启动时,会加载一个列表视图,其中包含从服务器发送的 10 个元素。(简单的请求)。

当我更改设备的方向时,重新创建了活动,我还看到了带有我请求加载列表视图的微调器。

如何禁止重新创建 Activity ?

我已经设置了标志:

android:configChanges="orientation|keyboardHidden|screenSize" 

和 onConfigurationChanged :

public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   mDrawerToggle.onConfigurationChanged(newConfig);
}
4

3 回答 3

0

然后你想覆盖

@Override
public void onConfigurationChanged(Configuration newConfig)
{
}

在您的活动中,使用您想要在方向/键盘隐藏/屏幕大小上执行的操作。

在清单中设置标志会告诉应用您要自己处理这些配置更改。

于 2013-07-16T12:56:59.300 回答
0

您需要覆盖 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");
}

希望这可以帮助

于 2013-07-16T13:01:38.510 回答
0

如果您不需要更改方向,也可以在清单中阻止它。只需在活动元素中指定属性:android:screenOrientation

于 2013-07-16T13:07:04.540 回答