在android中将数据从一个片段传递到另一个片段的最佳方法是什么?

时间:2015-04-28 06:32:18

标签: android android-fragments

在android中将数据从一个片段传递到另一个片段的最佳方法是什么?我知道Otto和Event Bus可以处理这个问题,但是非库的方式到底应该做什么呢?

请在回答之前考虑以下事项

http://developer.android.com/training/basics/fragments/communicating.html

通常您会希望一个片段与另一个片段进行通信,例如根据用户事件更改内容。所有Fragment-to-Fragment通信都是通过相关的Activity完成的。两个碎片不应该直接通信。

3 个答案:

答案 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中的侦听器接口减少片段之间的耦合总是更好。