Android(Java)
[Java] Fragment 상호 데이터 전송
삽질중
2024. 1. 16. 10:07
- BlankFragment2 -> BlankFragment1 으로 데이터 전송
. BlankFragment2
: 버튼 클릭시 BlankFragment1 으로 데이터 전송
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank2, container, false);
// 버튼 클릭시 BlankFragment1 로 데이터 전송
Button button = view.findViewById(R.id.send_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle result = new Bundle();
result.putString("bundleKey", "result");
getParentFragmentManager().setFragmentResult("requestKey", result);
}
});
// Inflate the layout for this fragment
return view;
}
.BlankFragment1
: 전송된 데이터 받아서 처리
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
// 다른 Fragment 에서 전송한 데이터 수신
getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
Log.d("Fragment1", requestKey + " " + result.getString("bundleKey"));
}
});
}