Fragment与Activity 接口回调交互
时间: 2024-01-22 21:02:26 浏览: 36
Fragment和Activity之间的接口回调是实现两个组件之间通信的一种方式。
具体的实现步骤如下:
1. 在Fragment中定义一个接口,该接口包含要传递给Activity的方法。
```
public interface MyFragmentListener {
void onButtonClicked(String text);
}
```
2. 在Fragment中声明一个成员变量,该变量是定义的接口类型的引用。
```
private MyFragmentListener listener;
```
3. 在Fragment的`onAttach()`方法中,将Activity转换为接口类型并将其赋值给上面声明的成员变量。
```
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof MyFragmentListener) {
listener = (MyFragmentListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement MyFragmentListener");
}
}
```
4. 在Fragment中需要调用Activity中的方法时,通过接口引用调用Activity中的方法。
```
listener.onButtonClicked("Button clicked from fragment");
```
5. 在Activity中实现上述定义的接口,并且在Activity中重写该接口的方法。
```
public class MainActivity extends AppCompatActivity implements MyFragmentListener {
...
@Override
public void onButtonClicked(String text) {
Log.d(TAG, "Button clicked: " + text);
}
}
```
这样就完成了Fragment与Activity之间的接口回调交互。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)