该值是在 Activity A 的编辑文本中输入的。当转到另一个 Activity B 而不保存并返回 A 时,Activity A 的编辑文本中的表单值将被清除。如何恢复编辑文本值?
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("company", company.getText().toString());
outState.putString("name", name.getText().toString());
outState.putString("email",email.getText().toString());
outState.putString("phone",phone.getText().toString());
outState.putString("address",address.getText().toString());
outState.putString("desc",desc.getText().toString());
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
co = savedInstanceState.getString("comoany");
em = savedInstanceState.getString("email");
ph = savedInstanceState.getString("phone");
add = savedInstanceState.getString("address");
na = savedInstanceState.getString("name");
de = savedInstanceState.getString("desc");
}
@Override
protected void onResume() {
Log.i("this", "Company::::::::::::" + co);
company.setText(co);
super.onResume();
}
最佳答案
您需要覆盖 Activity A 中的 onSaveInstanceState 并将编辑文本的值存储如下:
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString(TEXT_VIEW_KEY, mTextView.getText());
// call superclass to save any view hierarchy
super.onSaveInstanceState(outState);
并且在你的 onCreate Activity 中现在应该检查是否有任何以前保存的数据然后初始化你的 textview
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// recovering the instance state
if (savedInstanceState != null) {
String text = savedInstanceState.getString(TEXT_VIEW_KEY,);
}
setContentView(R.layout.main_activity);
// initialize member TextView so we can manipulate it later
mTextView = (TextView) findViewById(R.id.text_view);
mTextView.setText(text);
您可能还想检查 android 的架构组件,特别是生命周期感知组件,以简化您的工作
关于android - 恢复输入的编辑文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51322048/