将数据从 activity 发送到片段 android studio

send data from activity to fragment android studio

我想从activity发送数据到fragment,但是我提交的fragment数据为空。我不知道为什么。这是我发送数据并调用片段时的代码。

String b = "hahhaha";
Bundle bundle = new Bundle();
bundle.putString("coba" ,b);
bundle.putSerializable("modelassign" ,modelAssign);

// set Fragmentclass Arguments
ViewTaskFragment vtf = new ViewTaskFragment();
vtf.setArguments(bundle);

//call fragment
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment");
transact.commit();

这是我检索发送数据时的代码:

 modelAssign = (ModelAssign) this.getArguments().getSerializable("modelassign");
 String haha = this.getArguments().getString("coba");

有人能帮忙吗?

您正在将参数包传递到 Fragment:

ViewTaskFragment vtf = new ViewTaskFragment();
vtf.setArguments(bundle);

然后为交易创建一个新的 Fragment

transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment");

使用您之前创建的包含以下参数的 Fragment

transact.add(R.id.content_frame, vtf, "viewtaskfragment");

在向事务添加片段时,您正在创建 ViewTaskFragment() 的新实例,使用已创建的对象,您在其中存储了包。

transact.add(R.id.content_frame, vtf  , "viewtaskfragment");

改变这个

transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment");

transact.add(R.id.content_frame, vtf, "viewtaskfragment");