Android从activity2访问activity1

Posted

技术标签:

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

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

【问题讨论】:

访问是什么意思。您想从 Activity2 通知 Activity1 还是想从 Activity2 访问 Activity1 的某些成员?请说明你到底想做什么。 例如,我想更改 Edittext 的 settext()(edittext 在 activity1 中)。edittext 在 fristactivity。我想从第二个活动中更改它。 【参考方案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

【讨论】:

以上是关于Android从activity2访问activity1的主要内容,如果未能解决你的问题,请参考以下文章

android如何中自动跳转activity

按下后如何将数据从第二个活动传递到第一个活动? - 安卓

Android intent传输数据intent通过bundle传输数据

android logcat中不显示log.d我的程序代码中包含Log.d(TAG,"activi

静态分析Android程序

Acivity1 Fragment2 -> Activity2(单击按钮后)-> Activity1 Fragment2 从活动导航到特定片段