gpt4 book ai didi

android - 保存 Activity 状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:35 25 4
gpt4 key购买 nike

我有两个 Activity A, B 。现在,我通过按下按钮(使用 startActivity())从 A 调用 B,然后按返回键返回到 A。现在,当我再次按下 Button 转到 B 时,将调用新的 Activity (如预期的那样)。

现在有人可以告诉我如何显示 B 的旧状态吗?

我看过这篇文章 Saving Android Activity state using Save Instance State , 但情不自禁 :(

public class B extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);

if(savedInstanceState!=null){
EditText editText=(EditText)findViewById(R.id.editText1);
editText.setText(savedInstanceState.getString("EditBox"));
}
}

@Override
protected void onSaveInstanceState(Bundle onSaveInstanceState) {
System.out.println("B.onSaveInstanceState()");
super.onSaveInstanceState(onSaveInstanceState);
onSaveInstanceState.putString("EditBox","Hello");
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
System.out.println("B.onRestoreInstanceState()");
super.onRestoreInstanceState(savedInstanceState);
EditText editText=(EditText)findViewById(R.id.editText1);
editText.setText(savedInstanceState.getString("EditBox"));
}}

我的类(class)

public class A extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent i=new Intent(StartActivityforresultActivity.this,B.class);
startActivity(i);
}
});


}

最佳答案

对于听起来像你正在尝试做的事情,你有两个选择:1、保存B的onDestroy或onBackPressed调用时的状态。您必须将其保存到内存中或使用某种持久性(SharedPreferences、本地文件等)将其写出。然后每当 B 启动时,检查该数据是否存在并使用它来加载状态。2. 重写 onBackPressed,这样当它被按下时你就不会调用 super.onBackPressed。而是启动 Activity A 的实例,并在调用 startActivity 之前将您的 Intent 标志设置为 FLAG_ACTIVITY_REORDER_TO_FRONT。所以像这样:

    Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

现在,当您回击时,它应该会找到 A 的实例,该实例位于您的 Activity 堆栈中,并将其置于最前面。每当您启动 B 时,您可能还必须添加相同的标志。

关于android - 保存 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com