在我的申请表中有几个编辑文本,其中导航返回按下了我的数据丢失并且焦点无法在单击导航键后退按钮后保留该数据如何解决此问题
最佳答案
欢迎在 StackOverflow 上发帖。通常最好的做法是发布您尝试过的内容,而不是为我解决问题,但由于您是新来的,我将为您提供所需的信息。
当按下硬件后退按钮 onBackPressed 被触发时,您需要像这样覆盖它:
@Override
public void onBackPressed() {
}
然后您需要像这样设置 Activity 结果:
Intent resultIntent = new Intent();
resultIntent.putExtra("edit_text_info", editText.getText().toString());
setResult(Activity.RESULT_OK, resultIntent);
finish();
并开始此 Activity 以获取结果:
startActivityForResult(Activity, ActivityRequestCode);
然后用edittext覆盖调用 Activity 的 Activity 的onresult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ActivityRequestCode && resultCode == RESULT_OK && data != null) {
editText = data.getStringExtra(ActivityRequestCode);
}
}
使用 editText 从 Activity 接收到状态后,将其保存在一个变量中,并在使用 putStringExtra 导航回该变量后将其返回,然后...完成。
另一个解决方案是创建一个包含此编辑文本的 fragment 并将状态保留在 Activity 中,但我的假设是您是 Android 新手,所以这可能更容易(当然比定义单例或其他东西更好) .
关于java - 在 Android 中按下导航后退按钮时保留编辑文本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604343/