我有2个名为FirstActivity.java
和SecondActivity.java
的活动。
当我点击FirstActivity
中的按钮时,我会拨打SecondActivity
。当我从SecondActivity
返回时,根据结果,我需要跳过FirstActivity
中使用onCreate()
方法执行的一些步骤。
从SecondActivity
回来我使用Bundle
将我提供的数据作为输入提供给Intent
。我在第一个活动的onCreate()
中访问了该数据。
当我开始时,活动应用程序崩溃显示为我访问第二个活动数据的行中的NullPointerException
。
我认为,原因是第一次启动应用程序时Bundle
那么,任何人都可以帮我解决这个问题吗?
答案 0 :(得分:8)
您必须实现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
只需在文档中搜索thos方法:P