gpt4 book ai didi

android - 在 Activity 之间保存状态

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:13 25 4
gpt4 key购买 nike

我有 2 个名为 FirstActivity.javaSecondActivity.java 的 Activity 。

当我单击 FirstActivity 中的按钮时,我会调用 SecondActivity。当我从 SecondActivity 返回时,根据结果,我需要跳过 FirstActivity 中的一些步骤,这些步骤在其 onCreate() 方法中执行.

SecondActivity 回来后,我使用 Bundle 将我作为输入提供的数据放入 Intent。我在第一个 Activity 的 onCreate() 中访问了该数据。

当我开始时, Activity 应用程序崩溃,在我访问第二个 Activity 的数据的行中显示为 NullPointerException

我认为,原因是当应用程序首次启动时,Bundle

中没有任何值

那么,谁能帮我解决这个问题?

最佳答案

您必须实现 onSaveInstanceState(Bundle savedInstanceState) 并将要保存的值保存到 Bundle 中。实现 onRestoreInstanceState(Bundle savedInstanceState) 恢复 Bundle 并重新设置数据:

public class MyActivity extends Activity {
/** The boolean I'll save in a bundle when a state change happens */
private boolean mMyBoolean;

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putBoolean("MyBoolean", mMyBoolean);
// ... save more data
super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mMyBoolean = savedInstanceState.getBoolean("MyBoolean");
// ... recover more data
}
}

在这里您可以找到有关状态处理的使用文档:http://developer.android.com/reference/android/app/Activity.html

只需在文档中搜索那些方法 :P

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

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