Activity保存恢复数据
有的时候我们在窗口转化的过程中,某些数据是不被保存的,例如在你旋转手的时候一些变量会不被保存,一些控件值不被保存,那该如何去做呢?
控件数据丢失
这个很简单,主要是由于你的控件没有给出相应的控件ID所导致的,我们只需要将我们的控件编辑上我们的ID就好了。
变量数据的丢失
这个也不麻烦,但是需要的是保存我们重要的数据,我觉得用上一些Map集合是很方便的,例如在我们转换屏幕的方向的时候,数据就会重新刷新。
那么如何保存呢?我们可以重写onSaveInstanceState
方法
例如:
1 |
|
这个时候我是保存了a变量,保存在”a”这个键值下面。
那么如何回复呢?其实有两种方法,一种是onCreate
方法中进行恢复,一种是onRestoreInstanceState
方法中进行恢复,两种方法都是可以的,但是这种情况下我们一般建议使用onRestoreInstanceState
这个方法,其实是一样的,在我们这个方法被Java虚拟机调用的时候我们会传进来一个Bundle类型的一个参数,这个东西就有点像集合,也是键对值的一个操作,具体操作如下:
1 |
|
在onCreate
方法中也有那个Bundle参数,使用方法一样的。
记录一下这个Toast类,就是在窗口上提示一个小窗口:Toast.makeText(getApplicationContext(),a+"",Toast.LENGTH_SHORT).show();
很方便的一个小东西,但是就是太快了是不行的!