假设我想将数据从 fragment A 传递到 fragment B,但它在 fragment B 处抛出空指针异常。我想在不使用 Activity 的情况下传递数据。我该如何解决这个问题?
在FragmentA.java中
FragmentB ldf = new FragmentB ();
Bundle args = new Bundle();
args.putString("gender", genderSelected);
args.putString("name", name.getText().toString());
args.putString("contact", contactNo.getText().toString());
args.putString("age", age.getText().toString());
ldf.setArguments(args);
//Inflate the fragment
getFragmentManager().beginTransaction().add(R.id.fragmentContainer,ldf).commit();
在 FragmentB.java 中 - 在 onCreateView() 方法中
//接收上一个fragment的数据-在save中提交
String age = getArguments().getString("age");
String gender = getArguments().getString("gender");
String contact = getArguments().getString("contact");
String name = getArguments().getString("name");
最佳答案
您的 fragment A 是完美的,但在 fragment B 中您需要按照以下代码进行更改。
Bundle bundle = this.getArguments();
String age = bundle.getString("age");
String gender = bundle.getString("gender");
String contact = bundle.getString("contact");
String name = bundle.getString("name");
fragment 与 fragment 之间的直接通信不是正确的方式。 Refers this link.
关于java - 在两个 fragment 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31518284/