android - 恢复输入的编辑文本值

标签 android android-edittext

该值是在 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/

相关文章:

android - 使用 ProgressBar.setProgressDrawable 的颜色问题

Android - 适用于 Android 的最新开源 3D 库

android:从MultiAutoComplete Textview中获取所选项目并进行更新并更新EditView?

android - EditText 的自定义字典

Android Eclipse editText 在本地实例上的 setText 后不显示

Android 优化 ContentResolver 查询

java - 如何阻止多个服务接受一个 Intent 指令?

android - 需要使用 webservice 传输 .apk 文件

android - 将输入的值保存到 RecyclerView 的 EditTexts 中

android - EditText 获得焦点后不会失去焦点