我正在尝试在android中保存活动的状态。基本情景是有2个活动A和B.Activity A包含2个edittext字段。用户输入一些值并通过intent移动到活动B.当用户回到活动A(意图我提供了一个后退按钮)我需要在用户输入的2个edittext字段中显示这些值(即保持活动状态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);
}
答案 0 :(得分:0)
在ActivityA
中,如果您启动ActivityB
并且未自行调用finish()
,则ActivityB
完成时(当用户按下BACK按钮或其他方式时),{{ 1}}将以与其相同的状态显示。这只是标准的Android行为,您不需要做任何特别的事情。
ActivityA
未被调用(这是onRestoreInstanceState()
启动ActivityA
和ActivityB
然后完成的常见情况)。
ActivityB
仅被称为如果Android杀死了您的活动(例如在定向更改期间)或者您的进程被终止。在这种情况下,当用户返回您的活动时,Android会创建活动的新实例,然后调用onRestoreInstanceState()
。
答案 1 :(得分:0)
我必须简单地在活动B中调用finish()并且它有效。