fragment调用activity方法
时间: 2023-04-25 15:05:05 浏览: 247
Fragment之间通过Activity相互传值和调用方法
在Fragment中调用Activity的方法,可以通过以下步骤实现:
1. 定义一个接口,在Activity中实现该接口,并在Fragment中持有该接口的引用。
2. 在Fragment中调用该接口的方法,即可实现调用Activity的方法。
具体实现步骤如下:
1. 定义一个接口,例如:
```
public interface OnFragmentInteractionListener {
void onFragmentInteraction(String data);
}
```
2. 在Activity中实现该接口:
```
public class MainActivity extends AppCompatActivity implements OnFragmentInteractionListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onFragmentInteraction(String data) {
// 在这里处理Fragment传递过来的数据
}
}
```
3. 在Fragment中持有该接口的引用,并在需要调用Activity的方法时调用该接口的方法:
```
public class MyFragment extends Fragment {
private OnFragmentInteractionListener mListener;
@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");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
private void sendDataToActivity(String data) {
if (mListener != null) {
mListener.onFragmentInteraction(data);
}
}
}
```
这样,在Fragment中调用sendDataToActivity方法时,就可以实现调用Activity的onFragmentInteraction方法了。
阅读全文