bir*_*800 4 android android-fragments
我想通过实时对象从fragment
到fragment
.
我不希望传递数据.
我没办法做到这一点.
我认为唯一的方法是通过意图,但我不确定.
我读到了关于Singleton模式,接口和Bundle,Global varible.
我希望看到示例是否可以使用从一个到下一个的共享/传递对象.非常感谢.fragment
fragment
可以通过实现模型bean Parcelable
或Serializable
接口来实现在活动或片段之间传递真实对象.
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)
希望这可以帮助!
归档时间: |
|
查看次数: |
8111 次 |
最近记录: |