保存包(活动A):
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("test", "value");
super.onSaveInstanceState(outState);
}
Run Code Online (Sandbox Code Playgroud)
导航到活动B;
startActivity(new Intent(getBaseContext(), B.class));
Run Code Online (Sandbox Code Playgroud)
回到活动A:
startActivity(new Intent(getBaseContext(), A.class));
Run Code Online (Sandbox Code Playgroud)
试图在活动A中加载我写入bundle的值:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("MY", "saved instance is null"+ Boolean.toString(savedInstanceState == null));
}
Run Code Online (Sandbox Code Playgroud)
返回总是savedInstanceState = null.我在这里缺少什么?
当我返回主活动时,永远不会触发onRestoreInstanceState
我在片段类中使用了多个选项卡.我在保存片段状态方面失败了.我使用了onSaveInstanceState()方法并在其中保存了一个参数.但是当我回到这个片段时,保存的状态总是显示"null".我尝试了所有关于此的问题和答案.我仍面临同样的问题.请任何人帮我解决这个问题.
我的代码
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setRetainInstance(true);
super.onCreate(savedInstanceState);
Log.d("savedInstanceStateInfo1", "" + savedInstanceState);
if (null != savedInstanceState) {
nAndroids = savedInstanceState.getInt("nAndroids");
Log.d("NANDROIDS", "" + nAndroids);
}
}
// Log.d("State in oncreate : ",""+savedInstanceState);
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
Log.d("SavedinstanestateInfo", "" + savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
if (container == null) {
return null;
}
// final …Run Code Online (Sandbox Code Playgroud)