我正在尝试从活动类中启动一个意图:
Intent i = new Intent(this, (Obscured)MapActivity.class);
i.putExtra("stop", stop);
this.startActivity(i);
这是我的意图接收者(隐藏)MapActivity:
Intent i = this.getIntent();
if (i != null && i.getSerializableExtra("stop") != null) {
this.displayLocations();
BusStop tempStop = new BusStop();
tempStop = (BusStop) i.getSerializableExtra("stop");
this.goToStop(tempStop);
}
但由于某种原因,它没有发布。我还有另一个案例:
if (i != null && i.getSerializableExtra("loc") != null) {
this.displayLocations();
this.goToLocation((Location) i.getSerializableExtra("loc"));
}
这很好用,并且意图启动器代码几乎完全相同。有什么想法吗?
编辑:我也在使用SherlockListActivity,不确定是否会改变任何内容。
<activity
android:name=".(Obscured)MapActivity"
android:configChanges="keyboardHidden|orientation|screenSize|uiMode|screenLayout"
我很高兴提供更多信息,这已经困扰了我几个小时了。
解答: 发现了这个问题。出于某种原因,当我添加可序列化的额外(停止)时,它会中断。注释掉putExtra()并且它有效。问题是试图序列化GeoPoint。
答案 0 :(得分:1)
发现了这个问题。出于某种原因,当我添加可序列化的额外(停止)时,它会中断。注释掉setExtra()并且它有效。不知道为什么它不会通过它,该类扩展了可序列化,但我尝试的一切只是让它再次破坏。
答案 1 :(得分:0)
在manifest.xml中添加
<activity android:name=".MapActivity"
android:configChanges="orientation|keyboardHidden" />
答案 2 :(得分:0)
我不确定这是否有帮助,但putExtra()
{{1}}表示您必须具有额外名称中的包前缀:
名称必须包含包前缀,例如应用 com.android.contacts会使用像 “com.android.contacts.ShowAll”