Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在恢复状态时填充EditText数据?_Java_Android_Android Layout_Android Activity - Fatal编程技术网

Java 如何在恢复状态时填充EditText数据?

Java 如何在恢复状态时填充EditText数据?,java,android,android-layout,android-activity,Java,Android,Android Layout,Android Activity,下面是以下场景: 在活动A中填写EditText和其他字段 在按钮上从活动A移动到活动B,单击 现在,单击按钮,从活动B移动到活动A 填充的EditText现在已消失。它们都是空的 这些字段应预先填充(因为用户已填充) 有没有办法保存活动的当前状态A。这样我就可以填充EditText了?如果没有,我如何完成上述任务?使用SharedReferences.Editor在暂停时保存EditText数据,并在恢复时使用SharedReferences检索数据。这是最简单的方法。使用SharedRefe

下面是以下场景:

  • 在活动
    A
    中填写
    EditText
    和其他
    字段
  • 按钮上从活动
    A
    移动到活动
    B
    单击
  • 现在,单击按钮,从活动
    B
    移动到活动
    A
  • 填充的
    EditText
    现在已消失。它们都是空的
  • 这些字段应预先填充(因为用户已填充)

  • 有没有办法保存活动的当前状态
    A
    。这样我就可以填充
    EditText
    了?如果没有,我如何完成上述任务?

    使用SharedReferences.Editor在暂停时保存EditText数据,并在恢复时使用SharedReferences检索数据。这是最简单的方法。

    使用SharedReferences.Editor在暂停时保存EditText数据,并在恢复时使用SharedReferences检索数据。这是最简单的方法。

    要保存活动状态,请重写OnSaveInstanceState()方法

    并使用

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState)
    {
        super.onRestoreInstanceState(savedInstanceState);
        somevalue = savedInstanceState.getString("key"); 
    }
    

    如果要销毁活动并再次创建它,请使用此方法。

    要保存活动状态,请重写OnSaveInstanceState()方法

    并使用

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState)
    {
        super.onRestoreInstanceState(savedInstanceState);
        somevalue = savedInstanceState.getString("key"); 
    }
    

    如果要销毁活动并再次创建它,请使用此方法。

    如何从b移回a?如果您正在使用意图,那么您将启动该“a”活动的新实例。像上面提到的一些人一样,你应该在你的b活动中使用finish,这会把你带回到a。如果需要使用b中的数据填充a,则应使用startActivityForResult-

    如何从b移回a?如果您正在使用意图,那么您将启动该“a”活动的新实例。像上面提到的一些人一样,你应该在你的b活动中使用finish,这会把你带回到a。如果需要使用b中的数据填充a,则应使用startActivityForResult-

    是否为编辑文本分配了唯一ID?与android:id=“@+id/foobar”
    中一样?如果是这样,则活动应保存其状态.“现在,单击按钮即可从活动B移动到活动A”-您只需从B调用finish()。如果您的xml中有EditText的ID,则状态将自动保存。@Floern@Shadab I为每个文本视图分配了唯一的
    ID
    。以下是场景:用户通过UI填写活动A中的必填字段,并使用ActivityB_u2;.intent(Activity1.this.start())移动到活动b;代码。现在,用户使用ActivityA_u2;.intent(ActivityB.this.start())返回活动A;代码。活动的UI现在是空的(我填写的数据现在不在了:)啊,我想你应该回到A的前一个实例,而不是“转发”到一个新实例。在这种情况下,您必须手动保存数据,如下面提到的共享首选项或类似选项。获取数据并再次使用相同的数据填充编辑文本。对吗?您是否为编辑文本分配了唯一的ID?与android:id=“@+id/foobar”中一样?如果是这样,则活动应保存其状态.“现在,单击按钮即可从活动B移动到活动A”-您只需从B调用finish()。如果您的xml中有EditText的ID,则状态将自动保存。@Floern@Shadab I为每个文本视图分配了唯一的
    ID
    。以下是场景:用户通过UI填写活动A中的必填字段,并使用ActivityB_u2;.intent(Activity1.this.start())移动到活动b;代码。现在,用户使用ActivityA_u2;.intent(ActivityB.this.start())返回活动A;代码。活动的UI现在是空的(我填写的数据现在不在了:)啊,我想你应该回到A的前一个实例,而不是“转发”到一个新实例。在这种情况下,您必须手动保存数据,如下面提到的共享首选项或类似选项。获取数据并再次使用相同的数据填充编辑文本。对吧?谢谢你的回答。我想你误解了我的问题。用户通过用户界面填写
    活动A
    中的必填字段,并使用
    ActivityB_uuu.intent(Activity1.this).start()移动到
    活动b
    代码。现在用户使用
    ActivityA_uu.intent(ActivityB.this.start())返回到
    Activity A
    代码。活动的UI现在为空(我填写的数据现在不存在:)我知道您正在创建活动a的新实例,但您没有删除前一个实例,是吗?如果你有共同的偏好,你可以使用这个答案。谢谢你的回答。我想你误解了我的问题。用户通过用户界面填写
    活动A
    中的必填字段,并使用
    ActivityB_uuu.intent(Activity1.this).start()移动到
    活动b
    代码。现在用户使用
    ActivityA_uu.intent(ActivityB.this.start())返回到
    Activity A
    代码。活动的UI现在为空(我填写的数据现在不存在:)我知道您正在创建活动a的新实例,但您没有删除前一个实例,是吗?如果您不同意共享偏好,则可以使用此答案。