当前位置: 首页 > 知识库问答 >
问题:

在int活动之前存在EditText数据?

程吕恭
2023-03-14

有活动,有活动。我在A的EditText中输入文本,单击按钮,移动到B,进行其他活动,然后返回A。此时,我希望文本仍保留在A的EditText中。我该怎么办?已尝试startActivityForResult,但未调用onActivityResult()。走错了吗?

共有1个答案

漆雕恺
2023-03-14

由于活动A在移动到B时被破坏,为了恢复EditText中的数据,首先必须将其存储在某个地方。为此,可以使用Activity中的onSaveInstanceState()方法,该方法将在Activity销毁之前调用。

然后,您可以使用onRestoreInstanceState(savedInstanceState:Bundle?)恢复数据 或直接在onCreate(savedInstanceState:Bundle?)中

例如:

const val TEXT_KEY = "editText_text"

override fun onSaveInstanceState(outState: Bundle) {
  super.onSaveInstanceState(outState)
  outState.putInt(TEXT_KEY, yourEditText.text)
}

override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
  super.onRestoreInstanceState(savedInstanceState)

  savedInstanceState?.run {
    yourEditText.text = getString(TEXT_KEY)
  }
}

注意:只应使用onSaveInstanceState保存简单、轻量级的数据。

 类似资料:
  • 所以我有2个活动,主要活动和活动与ImageView在其中,我需要使第二个活动(与ImageView)出现2-4秒,然后消失和打开主要活动,一个白色的图像与公司的标志。有人能告诉我,我应该在developerandroid中读些什么来理解它是如何工作的以及应该做些什么吗?)谢谢

  • 假设我有一个列表活动,当你点击列表上的一个项目时,它会带你进入一个新的活动,其中包含该列表项目的更多详细信息。所有这些信息都是使用REST服务获取的。在我使用Reform将数据存储到一个对象中并将其存储到两个活动都可以访问的和单例类中之前,这样当选择一个列表项时,它只需要id并转到单例以获取正确的数据,然后在新活动中使用它。这是正确的Android实践吗?此外,我想知道是否最好让列表活动转到一个新

  • 我目前正在制作一个有edittext和2个按钮的应用程序,每次我在edittext中写一些东西,然后按下按钮1,就会添加一个新的textview。这是代码: 基本上,我正在做的是添加新的“玩家”,一旦我添加了他们,我想按下按钮2。Button2打开一个新活动,新活动应该读取我在前一个活动中添加的所有textviews。

  • 我已经阅读了讨论这个问题的其他问题,除了创建的第一个问题之外,它们都适用于我的布局。 目前,这是我的方法的顶部: ^这使得它至少键盘不会在启动时弹出,但仍然专注于。 这是我的的: 这是我提起我的活动时的样子: 问题是,对于某些手机,当像这样聚焦时,它们无法在其中写入。我希望它不对焦。 我所做的工作适用于接下来提出的布局,因为<code>编辑文本 请注意,它的布局是相同的。这是用户返回此屏幕后的屏幕

  • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav