我试图在两个活动(一个游戏活动和一个暂停屏幕活动)之间传递一个可打包的对象,因为我需要保存和恢复屏幕上敌人的位置、分数和计时器。现在,当我这样做时,我得到了分数和计时器,但没有敌人。我稍微调整了一下,发现我在敌人类中的位图可能是一个问题,所以我用包含位图位置的字符串解决了它。现在我还有其他一些事情要解决,这一切都归结为我制作了一个 Bundle 并将可打包的对象放入所述的 bundle 中,然后将其传递给其他活动。现在,我只得到ClassNotFoundException when unmarshalling
错误。这是我正在使用的代码:
暂停时的第一个活动
Intent intent = new Intent(GameActivity.this, PauseScreenActivity.class);
Bundle b = new Bundle();
gameState = new GameState(new ArrayList<>(customGameView.getEnemies()), score, timeLeftInMillis, xPosition, yPosition);
b.putParcelable("gameState", gameState);
intent.putExtra("bundle", b);
startActivity(intent);
第二个活动检索数据
Bundle b = getIntent().getBundleExtra("bundle");
gameState = b.getParcelable("gameState");
第二个活动发回数据
Intent intent = new Intent(PauseScreenActivity.this, GameActivity.class);
Bundle b = new Bundle();
b.putParcelable("gameState", gameState);
intent.putExtra("bundle", b);
startActivity(intent);
检索数据的第一个活动
Bundle b = getIntent().getBundleExtra("bundle");
gameState = b.getParcelable("gameState");
现在错误来自第二个活动的 onCreate 和b.getParcelable("gameState");
. 我会感谢所有的帮助,在此先感谢。