来自不启动的类的意图

时间:2012-09-19 18:28:06

标签: java android

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

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。

3 个答案:

答案 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”