首页 > 代码库 > onSaveInstanceState()方法问题
onSaveInstanceState()方法问题
============问题描述============
public class MainActivity extends Activity {
public static final String EXTRA_MESSAGE = "com.example.demotwotwo";
public static final String editTextString = "MainActivity_editTextString";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState!=null)
((EditText)findViewById(R.id.editText)).setText(savedInstanceState.getString(editTextString));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(editTextString, ((EditText)findViewById(R.id.editText)).getText().toString());
}
}
为什么在onSaveInstanceState()方法里面我保存了EditText里面输入的信息,但是在回到这个Activity里面时又没法还原刚才输入的信息了?
============解决方案1============
你重写onSaveInstanceState()方法时,将outState.putString(editTextString, ((EditText)findViewById(R.id.editText)).getText().toString());放到super.onSaveInstanceState(outState)前面。
============解决方案2============
错了错了,是你的类型错了吧,不是EditText吧,改成String试试。。。
============解决方案3============
savedInstanceState 数据的保存只适用于 activity恢复时候。
对于新建的activity,savedInstanceState =null;
返回再进入该act就是新建。
你的需求可以用sharePreferences 解决。
onPause/onDestory时保存, onCreate时候读取。
============解决方案4============
不会释放掉的,除非你调用了finish.
============解决方案5============
对啊,我自己也写了个例子,可以的保存的啊。。。你自己调用finish了吧
onSaveInstanceState()方法问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。