2

我正在尝试从活动类启动意图:

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。

4

3 回答 3

1

发现问题。出于某种原因,当我添加可序列化的附加(停止)时,它会中断。注释掉 setExtra() 并且它有效。不知道为什么它不会通过它,该类扩展了可序列化但我尝试的一切只是让它再次中断。

于 2012-09-21T18:46:23.147 回答
0

我不确定这是否有帮助,但JavaDocsputExtra()声明您必须在额外名称中包含包前缀:

名称必须包含包前缀,例如应用程序 com.android.contacts 将使用类似“com.android.contacts.ShowAll”的名称

于 2012-09-21T19:03:55.727 回答
0

在 manifest.xml 中添加

<activity android:name=".MapActivity"
    android:configChanges="orientation|keyboardHidden" />
于 2012-09-19T18:31:43.677 回答