0

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

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

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

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

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

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

4

2 回答 2

0

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

于 2018-10-09T17:17:12.740 回答
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);
    }
}

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

于 2018-10-09T14:24:05.087 回答