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

时间:2018-10-09 14:17:18

标签: java android android-fragments oncreate fragment-oncreateview

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

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

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

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

因此,基本上,我只想创建一次元素,并且在应用程序启动时必须创建它们。

如何解决此问题?感谢帮助。

2 个答案:

答案 0 :(得分:0)

最简单的方法是在创建它们之前添加一个简单的检查,检查它们是否为空:

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);
    }
}

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

答案 1 :(得分:0)

我建议您在配置更改时使用onSavedInstanceState()保持应用程序的状态,因为在启动应用程序时,onCreate()会被调用一次,直到配置发生更改:每个片段的生命周期取决于启动它们的活动,因此,您需要在适当的活动和片段中检查saveInstanceState的可为空性,以便在saveInstanceState为null或不为null时,为活动定义onCreate()中的逻辑,为片段定义onCreateView()中的逻辑。 这样,如果您的应用一次触发了onCreate()和onCreateView(),则保存状态的可为空性将确定要运行的逻辑