基于Result API
平级fragment之间
getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String key, @NonNull Bundle bundle) {
// Bundle支持任意的数据类型
String result = bundle.getString("bundleKey");
//做一些其他事情
doSomething();
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle result = new Bundle();
result.putString("bundleKey", "result");
getParentFragmentManager().setFragmentResult("requestKey", result);
}
});
父Fragment和子Fragment间
getChildFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String key, @NonNull Bundle bundle) {
// Bundle支持任意的数据类型
String result = bundle.getString("bundleKey");
//做一些其他事情
doSomething();
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle result = new Bundle();
result.putString("bundleKey", "result");
getChildFragmentManager().setFragmentResult("requestKey", result);
}
});