0

我对来自 iOS 背景的 Android 编程(以及 Java)非常陌生。我想要做的是将指向片段的指针从一个活动传递到另一个活动。

基本上,我有一个名为的启动活动BeginActivity,它处理几个Fragments登录和注册屏幕。登录后,我会加载TabsFragmentActivity使用以下代码调用的应用程序的主要活动:

public void loggedIn() {
    Intent intent = new Intent(this, TabsFragmentActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    this.startActivity(intent);

    finish();
}

我正在使用FLAG_ACTIVITY_CLEAR_TOP,因为我不希望用户在没有实际注销的情况下返回。

现在的问题:

BeginActivity我有一个指向保存用户数据的片段的指针。我像单例一样使用它,前几个视图片段可以从BeginActivity.

TabsFragmentActivity在调用它之前,我需要将同一个对象传递给新对象finish()

我该怎么做呢?我知道我可以使用putExtra(),但我相信这仅适用于字符串等。而不是其他片段。

有没有办法在新创建TabsFragmentActivity的我可以引用BeginActivity来“抓取”指针?

谢谢

4

2 回答 2

1

基本上你需要能够通过意图传递你的类,看看 Serializable / Parcelable 接口

这个问题有你需要的答案

如何在Android上将对象从一个活动传递到另一个活动

于 2013-04-11T11:20:45.567 回答
1

首先,您应该确定Fragments 和 Activity 生命周期

片段被设计成可重用的 UI 复杂组件。它们看起来像活动,但您可以重复使用。因此,您可以拥有尽可能多的包含相同片段的活动,但不能包含这些片段的相同实例。

如果您只想将用户数据传递给另一个活动,您必须使用BundleputExtra()implements Serializable or Parcelable Interfaces正如@gheese 所说,可能需要根据用户数据类型。

如果您想在两个或更多活动上使用片段的相同 UI 外观,除了使用BundleputExtra。您希望此行为的每个活动都必须包含一个字段,其为 aFragment并且在启动此片段时,您可以使用它getActivity().getIntent().getExtra 来获取用户信息并填充您的片段。

于 2013-04-11T13:18:54.177 回答