首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多个活动之间共享数据?

如何在多个活动之间共享数据?
EN

Stack Overflow用户
提问于 2016-10-25 08:03:08
回答 4查看 1.5K关注 0票数 0

这将是我在android工作室的第一个项目。我有一些java和C/C++的经验。不过,在程序开发方面,我仍然是一个完全的初学者。我从未开发过android应用程序。

这个应用程序将用于跟踪一个锻炼计划。用户将被要求为以下每一个输入他的1代表maxes :长凳,蹲下,死机。我希望应用程序使用这些输入的基础上的锻炼程序。这将涉及多个活动,共享和操作这些数据。

获取用户输入、保存它(意思是将其存储在某个地方并在应用程序终止时保持不变)并让多个活动访问它来显示的最佳方法是什么?该应用程序只要求用户输入一次。如果用户想要更改输入,可以在设置中完成。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-25 08:25:15

是的,意图是在活动之间传递信息的方式,但是您很快就会发现,它们并不是为了保存整个数据对象和保持某种持久性,尝试实现数据传递将成为您的噩梦。

看看一些持久性框架(让它是一些SQLite包装器,或者我个人喜欢realm.io,因为它们提供了非常酷的特性,比如实时的自动更新对象,它建立在它们的c++引擎之上,而且非常容易使用).一旦您将数据存储在某种数据层中,您只能通过意图传递对象的标识,并在接收活动中查询它们.

这样,您就可以在整个应用程序中保持模型的持久性,不会有困难将对象的更改传播回源活动,并丢失与Parcelable相关的信息( with是序列化对象以将其存储在意图中的一种方法)。

编码愉快!

票数 1
EN

Stack Overflow用户

发布于 2016-10-27 05:30:04

当您调用意图从一个活动跳转到另一个活动,那么您可以放置一些数据或值,您需要第二次活动或任何进一步的使用。您必须对所有活动调用执行同样的操作,最后,您可以在需要数据的地方使用它。

代码语言:javascript
复制
intentObject.putExtra("KEY", value);

Bundle bundle = getIntent().getExtras();

int value = bundle.getInt("KEY");
or
String value = bundle.getString("KEY");
or
DataObject dataObject = bundle.getString("KEY");

您也可以使用Gson来放置数据对象和获取数据对象。

票数 4
EN

Stack Overflow用户

发布于 2016-10-25 08:12:29

通过使用意图来尝试这个

论第一次活动

代码语言:javascript
复制
Intent intent = new Intent(Activity_FROM.this, Activity_TO.class);

intent.putExtra("KEY1", value);

intent.putExtra("KEY2", "a value");

startActivity(intent);

On second activity

Bundle bundle = getIntent().getExtras();

int value = bundle.getInt("KEY1");

String value2 = bundle.getString("KEY2");

为了让它更加清晰,您可以更好地理解android框架和术语的基本概念。当它完成时,您可以很容易地理解流程流程。

访问www.vogella.com

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40234533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档