我在mainactivity中使用了四个片段,每个片段都有它的类和mainactivity类。
我在 fragment1 类中有元素,当我在 onCreateView 方法中创建它们时,它们每次打开片段时都会创建。
我尝试在片段类的onStart方法中创建元素,没有任何变化。我尝试在片段类的onCreate方法中创建元素,它会停止应用程序。
当我在 onCreate, onStart 方法中创建元素时,它会停止应用程序。
所以,基本上我只想创建一次元素,当应用程序启动时,必须创建它们。
如何解决这个问题?感谢您的帮助。
我建议您在配置更改时使用 onSavedInstanceState(( 保持应用程序的状态,因为当您启动应用程序时,onCreate(( 被调用一次,直到配置发生变化:并且每个片段的生命周期取决于启动它们的活动,因此,您需要在适当的活动和片段中检查 savedInstanceState 的可空性,以便为活动定义 onCreate(( 中的逻辑和片段的 onCreateView(( 中的逻辑当 savedInstanceState 为空而不是空时。 这样,如果你的应用应该在一次之后触发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);
}
}
否则,您可以重写代码以使用静态变量。