【发布时间】:2014-02-05 16:49:49
【问题描述】:
我有两个不同的活动,在第一个活动中,我在一些 EditTexts 中输入了一些信息,然后我转到第二个活动,但是当我返回时,第一个活动中 EditTexts 上的文本消失了。
这是第一个活动的 OnCreate():
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_frm_recetas);
txtClient = (EditText) findViewById(R.id.txtNombreCliente);
if(savedInstanceState != null){
String client = savedInstanceState.getString("Client");
txtClient.setText(client);
}
}
我正在使用 onSaveInstanceState 方法来保存信息
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
String x = txtClient.getText().toString();
savedInstanceState.putString("Client", x);
super.onSaveInstanceState(savedInstanceState);
}
在做debug的时候,可以看到savedInstanceState Bundle确实已经在onSaveInstanceState方法中填写了,但是在OnCreate中却显示为null。
也许我必须在第二个活动中添加一些内容?目前,除了一个可以让我返回第一个活动的按钮之外,我没有其他任何东西。
【问题讨论】:
-
如果在
onSavedInstanceState方法的第一行调用super.onSaveInstanceState(savedInstanceState)会发生什么? -
"第一个活动中 EditTexts 上的文本消失了" - 唯一会发生的方法是清除它们,用新实例替换它们,或者如果第一个活动由于某种原因被摧毁。您可以通过查看是否调用了
onDestroy()来确定后一种情况。 -
@CommonsWare..如何检测是否调用了 onDestroy() .?
标签: android