我想在onCreate方法中将setRetainInstance(true)方法添加到我的应用程序中,但它不起作用。 Android Studio告诉我它无法解析方法setRetainInstance。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
setContentView(R.layout.activity_main);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
}
错误:(47,9)错误:找不到符号方法setRetainInstance(boolean)
答案 0 :(得分:1)
这是一个Fragment类方法,而不是来自Activity,请参见此处:
http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)
[编辑]
回答您的其他信息:
尝试解释它:我在Android studio中创建了一个标准的导航抽屉活动并开始编程。如果我更改了应用的方向,则应用会崩溃,因为它不会重建我在activity_main.xml中设置的元素。
有很多方法可以解决这个问题:
实际上最好的方法是从配置更改重建对象的能力开始。 Android可以破坏你的应用程序(当它在后台时),杀死你的活动对象,然后当用户想要将它移动到前台时你无论如何都必须重新创建你的对象。
答案 1 :(得分:0)
正如@marcinj所说,这是一种Fragment方法。 尝试解释您想要达到的目标,以便我们为您提供更完整的答案。
如果您已经有一个片段,则需要从那里调用setRetainInstance方法。如果您没有,但仍需要因某种原因更改retainInstance属性,请创建一个: http://developer.android.com/training/basics/fragments/creating.html