我有一个带有Frgment的Android活动。当我的应用程序启动时,listview加载了10个从服务器发送的元素。 (简单要求)。
当我更改设备的方向时,会重新创建活动,我也会看到微调器带有我加载列表视图的请求。
如何禁止重新创建活动?
我已经设置了标志:
android:configChanges="orientation|keyboardHidden|screenSize"
onConfigurationChanged:
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
答案 0 :(得分:0)
然后你要覆盖
@Override
public void onConfigurationChanged(Configuration newConfig)
{
}
在你的活动中,你想要在方向/ keyboardHidden / screenSize上做什么。
在清单中设置标志会告诉应用程序您希望自己处理这些配置更改。
答案 1 :(得分: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");
}
希望这有帮助
答案 2 :(得分:0)
如果您不需要更改方向,您也可以在清单中阻止它。只需在activity元素中指定属性:android:screenOrientation