我应该如何在活动之间进行沟通? [复制]

Posted

技术标签:

【中文标题】我应该如何在活动之间进行沟通? [复制]【英文标题】:How should I communicate between activities? [duplicate] 【发布时间】:2014-02-19 00:36:12 【问题描述】:

我有 3 个按钮。 按钮 A、B 和 C。按钮 A 位于 Fragment 中。它启动意图(活动)。在新的活动按钮 B 和 C 中驻留。按钮 B 显示“NEW”,而按钮 C 显示“OK”。

我想要做的是在单击按钮 B(“新”)之后,意图应该保持该按钮,直到用户点击按钮 C(“确定”),活动应该自行销毁并返回到现在的片段一个名为 ("NEW") 的新按钮。

有哪些简单的方法可以做到这一点?如果我希望应用程序记住新创建的按钮以便它不会在 onDestroy 上丢失,我应该用 sqlite 保存它吗?

我对 android 不是很精通,所以希望有人可以通俗地说或举个例子。

【问题讨论】:

【参考方案1】:

使用 Bundle 请阅读更多关于它的信息。 http://developer.android.com/reference/android/os/Bundle.html

1) 从 Intent 中使用 Bundle:

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);

2) 创建一个新的捆绑包

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);

3) 使用 Intent 的 putExtra() 快捷方式

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

然后,在启动的 Activity 中,您可以通过以下方式阅读它们:

String value = getIntent().getExtras().getString(key);

这是正确的方法。另一种方法是 SharedPreferences。 http://developer.android.com/training/basics/data-storage/shared-preferences.html

【讨论】:

太棒了!这似乎会有所帮助。但是,我仍然不知道事情应该去哪里。令人沮丧,我知道。如果你能给我一个或两个指针,这是我的 MainActivity (pastebin.com/T6W2BGFL) 以及我的 SecondaryActivity (pastebin.com/jGxQmPcE) 另外,在 Bundle 与 SharedPreferences 之间是否有首选方式? 请将该答案标记为已接受,谢谢!

以上是关于我应该如何在活动之间进行沟通? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在二郎案件中的不同案件情况之间进行沟通

android - 在活动和后台服务之间进行通信的最佳方式

如何在 adf 中按顺序进行复制活动?

如何在两个活动之间共享一个视图?

如何在 10 分钟不活动后使 PHP 会话过期? [复制]

如何使用接口在两个活动之间进行通信