【问题标题】:Android access activity1 from activity2Android从activity2访问activity1
【发布时间】:2011-10-06 03:30:21
【问题描述】:

嗨,我是 Android 应用程序开发的新手。在我的应用程序中,我有两个活动 Activity1 和 Activity2。从活动 1 中,我将 Activity2 称为 Intent。我想从此活动(活动 2)访问活动 1,而无需进入第一个活动,有没有可能的方式?请指导我

【问题讨论】:

  • 访问是什么意思。您想从 Activity2 通知 Activity1 还是想从 Activity2 访问 Activity1 的某些成员?请说明你到底想做什么。
  • 例如,我想更改 Edittext 的 settext()(edittext 在 activity1 中)。edittext 在 fristactivity。我想从第二个活动中更改它。

标签: android


【解决方案1】:

唯一有意义的是将数据从 Activity 1 传递到 Activity 2。要做到这一点,只需通过 Intent 传递一些数据:

intent.putExtra("key", "Your data here");

在第二个活动中:

String data = getIntent().getExtra("key");

如果不是这种情况,那么您的任务在某处是错误的。当活动消失在后台时,没有任何意义与之交互。

【讨论】:

  • 我可以通过这个传递任何布局对象吗?
  • 你不应该在活动之间传递对象的实例,即使有可能(我不认为是这样)。
【解决方案2】:

不,没有。 Activity1 甚至可能已关闭。

如果您想在两个活动之间传递 DATA,那当然是可行的。通过意图传递数据、使用http://developer.android.com/reference/android/content/SharedPreferences.html 或您可以从这两个活动中访问的任何其他存储。

【讨论】:

    【解决方案3】:

    如果您的第二个活动想要更改前一个活动的内容,那么,而不是使用

    startActivity(...);
    

    你应该使用

    startActivityForResult(...);
    

    也许这个link 可以提供帮助。

    【讨论】:

      【解决方案4】:

      所以你有这样的场景,你从活动 A 开始活动 B,并且你想在活动 B 完成时更改一些参数(你的更改不能实时传播,因为你不能确定状态是什么活动 A )。因此,实现这一点的最佳方法是使用活动结果 - 有关它的更多信息,请查看Android: Capturing the return of an activity

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-06
        相关资源
        最近更新 更多