============问题描述============
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()方法问题
原文:http://www.cnblogs.com/shaochuyun57/p/4035831.html