【发布时间】:2015-07-12 10:53:30
【问题描述】:
每次显示Fragment 时,我都会尝试在Fragment 类中使用boolean 做某事。
示例
我的应用启动,第一次打开FirstFragment 和boolean 总是true,然后我有一个if 子句来检查它的值:
if (FirstTime) {
FirstTime = false;
} else {
// Other stuff here, cause it's not true.
}
然后,第一次,当FirstTime 是true 时,我会执行诸如转到另一个Fragment 之类的操作。当我返回Fragment1 和我的onCreate() 时,我也会这样做。一直是true,好像很清爽什么的。
然后我认为这可能是Fragment 的问题,每次我按下Fragment1 时,它都会重新启动什么的。然后,我在 MainActivity 中添加了一个 getter 和 setter:
public Boolean getFirstTime() {
return FirstTime;
}
public void setFirstTime(Boolean FirstTime) {
this.FirstTime = FirstTime;
}
从一开始就是这样,然后,我将代码从 Fragment1 更改为:
if (((MainActivity) getActivity()).getFirstTime())
((MainActivity) getActivity()).setFirstTime(false);
} else {
// Other stuff here, cause it's not true,
}
但是,它仍然说这是真的。
我做错了什么或者我对 Fragments 有什么误解?
有什么办法吗?
【问题讨论】:
-
你有应用类吗?如果是这样保存在那里
-
@Elltz 你是什么意思?
-
我的意思是你有布尔问题吗?那么一个简单的方法是创建一个单例类,只要您的片段和活动都还活着,它就会一直挂起,并在该类中创建变量,例如扩展 Application 的类
标签: java android android-fragments sharedpreferences android-lifecycle