0

我正在尝试在 android.Basic 场景中保存活动的状态。有 2 个活动 A 和 B.Activity A 包含 2 个编辑文本字段。用户在其中输入一些值并通过意图移动到活动 B。当用户返回活动 A(我有意提供了一个后退按钮)我需要在用户输入的 2 个编辑文本字段中显示这些值(即保持活动 A 的状态)。另外我不想使用共享首选项或制作那些字段为静态。我使用了以下代码,但没有帮助:

  @Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.manual_entry);
            edittext1=(Edittext)findViewById(R.id.edittext1);
    }

@Override
    protected void onSaveInstanceState(Bundle savedInstanceState)
    {
          super.onSaveInstanceState(savedInstanceState);
          savedInstanceState.putString("cardvalue_saved_inst", value_card_manuallyentered);
    }




@Override
    public void onRestoreInstanceState(Bundle savedInstanceState) 
    {
      super.onRestoreInstanceState(savedInstanceState);
      value_savedinstance = savedInstanceState.getString("cardvalue_saved_inst");
      Log.e("value_savedinstance",""+value_savedinstance);
      edittext1.setText(value_savedinstance);
    }
4

2 回答 2

0

ActivityA中,如果您启动ActivityB并且不调用finish()自己,则在ActivityB完成时(当用户按 BACK 按钮或其他方式时),ActivityA将显示为与它所处的相同状态。这只是标准的 Android 行为,您不需要做任何特别的事情。

onRestoreInstanceState()如果暂停的活动被恢复(这是启动然后完成的通常情况),则不会调用。ActivityAActivityBActivityB

onRestoreInstanceState()仅当 Android 终止您的活动(例如在方向更改期间)或终止您的进程时才会调用。在这种情况下,当用户返回到您的 Activity 时,Android 将创建该 Activity 的新实例,然后调用onRestoreInstanceState().

于 2013-05-10T16:38:08.943 回答
0

我必须在活动 B 中简单地调用 finish() 并且它起作用了。

于 2013-05-31T16:19:12.630 回答