在android中将数据从一个片段传递到另一个片段的最佳方法是什么?我知道Otto和Event Bus可以处理这个问题,但是非库的方式到底应该做什么呢?
请在回答之前考虑以下事项
http://developer.android.com/training/basics/fragments/communicating.html
通常您会希望一个片段与另一个片段进行通信,例如根据用户事件更改内容。所有Fragment-to-Fragment通信都是通过相关的Activity完成的。两个碎片不应该直接通信。
答案 0 :(得分:3)
你可以使用Bundle
来做到这一点MyFragment fragment = new MyFragment ();
Bundle data= new Bundle();
data.putString("Key", "Value");
fragment .setArguments(args);
getFragmentManager().beginTransaction().add(R.id.container, fragment ).commit();
通过
在另一个片段onCreate中检索包String value = getArguments().getString("Key");
答案 1 :(得分:0)
如果您不使用Otto / EventBus,则应使用侦听器接口。
答案 2 :(得分:0)
在MainActivity中实现一个侦听器,并将该值传递给MainActivity中的另一个片段。片段通常用作可重用组件,使用MainActivity中的侦听器接口减少片段之间的耦合总是更好。