我在mainactivity中使用了四个片段,每个片段都有其与mainactivity类的类。
fragment1类中有元素,当我在onCreateView方法中创建元素时,每次打开片段时它们都会创建。
我试图在片段类的onStart方法中创建元素,没有任何变化。我试图在片段类的onCreate方法中创建元素,它停止了该应用程序。
当我在MainActivity的onCreate,onStart方法中创建元素时,它将停止应用程序。
因此,基本上,我只想创建一次元素,并且在应用程序启动时必须创建它们。
如何解决此问题?感谢帮助。
答案 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(),则保存状态的可为空性将确定要运行的逻辑