如何在Android中将值从一个片段传递到另一个片段?

use*_*145 9 android bundle android-fragments

我是Fragments的新手.我想将String值从一个Fragment传递给另一个Fragment.这该怎么做?我用以下方式调用了我的碎片.请一步一步指导我.

String cid = id.getText().toString();
Fragment fr = new FriendFragment();
android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fr);
ft.commit(); 
Run Code Online (Sandbox Code Playgroud)

Spr*_*ker 29

你可以做类似下面的事情,

 String cid=id.getText().toString();
 Fragment fr=new friendfragment();
 FragmentManager fm=getFragmentManager();
 android.app.FragmentTransaction ft=fm.beginTransaction();
 Bundle args = new Bundle();
 args.putString("CID", cid);
 fr.setArguments(args);
 ft.replace(R.id.content_frame, fr);
 ft.commit(); 
Run Code Online (Sandbox Code Playgroud)

要接收数据,请执行以下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("CID");    
    return inflater.inflate(R.layout.fragment, container, false);
}
Run Code Online (Sandbox Code Playgroud)


Mid*_*mar 6

如果要将数据从片段发送到活动,可以使用接口.

但是当你想要将数据从片段发送到另一个片段时,它会变得复杂.您可能希望将数据发送到活动,然后发送到其他片段.

我使用EventBus来解决这个问题.这个怎么运作.

  1. 创建一个事件-E.
  2. 来自Fragment-A事件的注册.
  3. 从fragment-B发布event-E和您想要传递的数据.
  4. 您将在Fragment-A中编写的onEvent()方法中获取数据.

而已.无需编写自己的接口.

您可以使用eventbus进行从后台服务或线程到活动的通信.

检查EventBus HowToRepository.