在Activity和Fragment之间进行方法通信可以通过接口回调实现。这种方式允许Fragment调用Activity中的方法,同时Activity也可以调用Fragment中的方法。
举个例子,假设我们有一个Activity和一个Fragment。我们想通过Fragment中的按钮点击事件调用Activity中的方法,我们可以定义一个接口并在Activity中实现它,在Fragment中调用它。
public class MainActivity extends AppCompatActivity implements MyFragment.OnButtonClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onButtonClick() {
// 实现你的逻辑
}
}
public class MyFragment extends Fragment {
private OnButtonClickListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnButtonClickListener) {
mListener = (OnButtonClickListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnButtonClickListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnButtonClickListener {
void onButtonClick();
}
}
在Fragment中,我们可以使用以下代码调用Activity中的方法:
mListener.onButtonClick();
这会触发Activity中的onButtonClick()方法。