【问题标题】: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 不是很精通,所以希望有人可以通俗地说或举个例子。

【问题讨论】:

    标签: android android-activity communication


    【解决方案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 之间是否有首选方式?
    • 请将该答案标记为已接受,谢谢!
    猜你喜欢
    • 2013-10-02
    • 2013-08-28
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2013-10-02
    • 2017-08-22
    相关资源
    最近更新 更多