【发布时间】:2019-04-26 12:16:34
【问题描述】:
我正在尝试在 Android Studio 中制作一种空闲 RPG 游戏。您的英雄具有一些属性,例如经验、等级、生命值、金币等。
我有显示名称、XP 和级别的主屏幕。然后我想打开另一个活动并更改 XP,当我回到第一个屏幕时,XP 也会在那里更新。
我该怎么做呢?
我通过将 Hero 对象设置为 Singleton 来实现它。然而,这给我带来了一些设计问题,所以我更愿意使用另一种方法。
我也尝试过使用意图传递对象,但它似乎没有更新主要活动中的更改。到目前为止,它只是在第二个活动中更新对象的属性,但是当我关闭该活动时,任何更改都不会保存 - 即使我再次打开活动。
我在开发 Android 应用方面不是很有经验,所以我可能做错了什么。任何帮助将不胜感激!
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("hero", hero);
startActivity(intent);
Hero hero = (Hero) getIntent().getSerializableExtra("hero");
hero.incxp();
【问题讨论】:
-
你不要在Activities之间传递这样的对象,你应该有一个数据层,一个像DataContext这样的类,你在其中存储对象给我修改,然后Activity可以从这个DataContext类中读取对象