如何在应用程序启动时创建Fragment的元素而不重新创建它们

问题描述 投票:0回答:2

我在mainactivity中使用了四个片段,每个片段都有mainactivity类。

我在fragment1类中有元素,当我在onCreateView方法中创建它们时,每次打开片段时它们都会创建。

我尝试在片段类中的onStart方法中创建元素,没有任何改变。我试图在片段类中的onCreate方法中创建元素,它会停止应用程序。

当我在MainActivity中的onCreate,onStart方法中创建元素时,它会停止应用程序。

所以,基本上我只想创建一次元素,当app启动时,必须创建它们。

我怎么解决这个问题?感谢帮助。

java android android-fragments oncreate fragment-oncreateview
2个回答
0
投票

我建议您在配置更改时使用onSavedInstanceState()来保持应用程序的状态,因为当您启动应用程序时,onCreate()会被调用一次,直到配置发生更改:并且每个片段的生命周期取决于启动它们的活动,因此,您需要在相应的活动和片段中检查savedInstanceState的可为空性,以便在savedInstanceState为null且不为null时为两者定义onCreate()for activity和onCreateView()for fragment中的逻辑。通过这样做,如果您的应用程序应该在一次之后触发onCreate()和onCreateView(),则保存状态的可为空性将决定运行的逻辑


0
投票

最简单的方法是在创建它们之前添加一个简单的检查,看它们是否为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);
    }
}

否则,您可以重写代码以使用静态变量。

© www.soinside.com 2019 - 2024. All rights reserved.