当前位置: 代码迷 >> Android >> 切换acivity时,怎么保存各个activity的状态
  详细解决方案

切换acivity时,怎么保存各个activity的状态

热度:25   发布时间:2016-04-28 07:44:27.0
切换acivity时,如何保存各个activity的状态
我有两个activity,分别是A和B,A是主界面,上面有edittext和button,B上面有listview(listview上面我放了switch控件), 我按button从A跳转到B,设置B中listview的switch为true或false,当设置完成,我在B中按返回键返回A,然后我再通过A的button跳到B的时候,就发现刚刚我设置的switch都复原,没有了我设置的状态,请问怎样才能够让B返回A之后依然保存我之前所设置的状态?求指导!!!
activity切换 保存状态

------解决方案--------------------
返回到A的时候,把B变量存储在Preferences里面,下次再启动B的时候,读取这个变量恢复一下。
------解决方案--------------------
同过sharedPerferenced来保存,然后要使用的时候再取出来
------解决方案--------------------
上面说的对,SharedPerferenced最合适了。
------解决方案--------------------
引用:
感谢各位的回答,但是现在又出现了一个问题,
在B界面中的listview有3行数据,每行数据都有textview和switch控件,
我在onResume中把switch的状态放到CHECK_STA数组中,
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
CHECK_STA[0] = sp.getBoolean(SWITCH_1_KEY, true);
CHECK_STA[1] = sp.getBoolean(SWITCH_2_KEY, true);
CHECK_STA[2] = sp.getBoolean(SWITCH_3_KEY, true);
//sp是 SharedPreferences sp;
//list 是(ListView) findViewById(R.id.listView1);
for(int i=0; i<3; i++)
{
 View view = (View)list.getChildAt(i);
         Switch mSwitch = (Switch)view.findViewById(R.id.switch1);
         mSwitch.setChecked(CHECK_STA[i]);
}
}

但是view的值无论如何都是null!!!我怎么才能够获得listview中switch的值呢???!?!??

你在onPause的时候去把值存储起来.....
我估计在onResume时listview还没加载起来,所以获取的view是null
  相关解决方案