在活动之间保存状态

2023-11-30

我有 2 个名为FirstActivity.java and SecondActivity.java.

当我点击一个按钮时FirstActivity, 我打电话SecondActivity。当我从SecondActivity,根据结果,我需要跳过一些步骤FirstActivity这是在其执行onCreate() method.

从回来SecondActivity I used Bundle将我作为输入提供的数据放入Intent。我访问了该数据onCreate()第一个活动的。

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

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

那么,有人可以帮我解决这个问题吗?


您必须实现 onSaveInstanceState(Bundle savingInstanceState) 并将要保存的值保存到 Bundle 中。实现 onRestoreInstanceState(Bundle savingInstanceState) 来恢复 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在活动之间保存状态 的相关文章

随机推荐