我有一个Activity(0),它从其托管的片段开始另一个Activity(1)。我已经在工具栏中设置了“向上”按钮,以从Activity(1)返回到Activity(0),还有其他一些Activity (2,3,4)可能由Activity(1)初始化。
我想为Activity(0)保存一个变量,以便在用户按下Activity(1,2,3,4 ...)中的Up按钮后重新创建它时,它将返回到其先前的状态。 / p>
我知道使用Intents可以做到这一点,但是我不希望以后的所有Activity都必须了解Activty(0)的工作原理。
是否可以通过调用Onsavedinstancestate来写入outState?还是有我不知道的更好的解决方案?
答案 0 :(得分:1)
在活动(0)中,跟踪一个私有字段,其中包含您要保留的信息,如果活动被破坏,请使用onSaveInstanceState()
保存该字段:
private String myInfo;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("KEY_MY_INFO", myInfo);
}
您没有说要保存什么样的信息或要从哪里保存信息,但是这个通用模板应该可以工作。您可能需要公开一个setter方法:
public void setMyInfo(String myInfo) {
this.myInfo = myInfo;
}
如果您要尝试从片段开始工作,则可能需要投射活动:
MyActivity activity = (MyActivity) getActivity();
activity.setMyInfo("hello world");
答案 1 :(得分:0)
如果您没有finish
活动0。您可以将变量定义为全局变量。
例如:
Class A extends AppCompatActivity{
public String myvariable;
...
}