帮我写一个 Fragment 与 Fragment 通信的通用框架
时间: 2024-02-01 08:37:11 浏览: 65
好的,下面是一个简单的 Fragment 与 Fragment 通信的通用框架:
1. 首先定义一个接口(例如:OnFragmentInteractionListener),该接口包含需要传递的数据类型和方法,例如:
```
public interface OnFragmentInteractionListener {
void onFragmentInteraction(String data);
}
```
2. 在需要传递数据的 Fragment 中,创建一个成员变量来存储接口实例,例如:
```
private OnFragmentInteractionListener mListener;
```
3. 在该 Fragment 的 onAttach() 方法中,将接口实例赋值给成员变量:
```
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
```
4. 在需要传递数据的地方,调用接口的方法将数据传递出去,例如:
```
if (mListener != null) {
mListener.onFragmentInteraction("data");
}
```
5. 在接收数据的 Fragment 中,实现接口并处理数据,例如:
```
public class ReceiveFragment extends Fragment implements OnFragmentInteractionListener {
...
@Override
public void onFragmentInteraction(String data) {
// 处理传递过来的数据
}
}
```
通过这种方式,你可以在多个 Fragment 之间传递数据。需要注意的是,接口的实现必须在 Activity 中完成。
阅读全文