如何将对象从片段传递到片段?

bir*_*800 4 android android-fragments

我想通过实时对象fragmentfragment.

希望传递数据.

我没办法做到这一点.

我认为唯一的方法是通过意图,但我不确定.

我读到了关于Singleton模式,接口和Bundle,Global varible.

我希望看到示例是否可以使用从一个到下一个的共享/传递对象.非常感谢.fragmentfragment

Dem*_*nem 6

可以通过实现模型bean ParcelableSerializable接口来实现在活动或片段之间传递真实对象.

Parcelable: Parcel类似于Bundle,但更复杂,可以支持更复杂的类序列化.应用程序可以实现Parcelable接口来定义可以传递的特定于应用程序的类,尤其是在使用服务时.

您可以在此处查看如何在本文中实现Parcelable接口.

public class Foo implements Parcelable {
   ...
}
Run Code Online (Sandbox Code Playgroud)

Serializable:可序列化的接口是java标准序列化.你可以在这里阅读更多相关信息.

public class Foo implements Serializable {

    private static final long serialVersionUID = 0L;
   ...
}
Run Code Online (Sandbox Code Playgroud)

假设您有一个类Foo正确实现Parcelable,将其放入Activity中的Intent:

Intent intent = new Intent(getBaseContext(), NextActivity.class);
Foo foo = new Foo();
intent.putExtra("foo", foo);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

要从另一个活动中获取它:

Foo foo = (Foo) getIntent().getExtras().getParcelable("foo");
Run Code Online (Sandbox Code Playgroud)

**编辑**

正如最初的问题要求碎片,这就是它的工作原理:

 Fragment fragment = new Fragment();
 Foo foo = new Foo();

 Bundle bundle = new Bundle();
 bundle.putParcelable("Foo", foo);
 fragment.setArguments(bundle); 
Run Code Online (Sandbox Code Playgroud)

要从另一个片段中的bundle获取它:

Foo foo = (Foo) bundle.getParcelable("Foo");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!