我在mainactivity中使用了四个片段,每个片段都有mainactivity类。
我在fragment1类中有元素,当我在onCreateView方法中创建它们时,每次打开片段时它们都会创建。
我尝试在片段类中的onStart方法中创建元素,没有任何改变。我试图在片段类中的onCreate方法中创建元素,它会停止应用程序。
当我在MainActivity中的onCreate,onStart方法中创建元素时,它会停止应用程序。
所以,基本上我只想创建一次元素,当app启动时,必须创建它们。
我怎么解决这个问题?感谢帮助。
我建议您在配置更改时使用onSavedInstanceState()来保持应用程序的状态,因为当您启动应用程序时,onCreate()会被调用一次,直到配置发生更改:并且每个片段的生命周期取决于启动它们的活动,因此,您需要在相应的活动和片段中检查savedInstanceState的可为空性,以便在savedInstanceState为null且不为null时为两者定义onCreate()for activity和onCreateView()for fragment中的逻辑。通过这样做,如果您的应用程序应该在一次之后触发onCreate()和onCreateView(),则保存状态的可为空性将决定运行的逻辑
最简单的方法是在创建它们之前添加一个简单的检查,看它们是否为null:
private String test;
if (test == null)
test = new String();
对于此方法,您将确保变量位于整个类的范围内:
class test {
private String test;
public void update() {
if(test == null) test = new String();
textView.setText(test);
}
}
否则,您可以重写代码以使用静态变量。