Android 多个Fragment与一个Activity如何互相通信
时间: 2023-11-22 21:53:38 浏览: 85
在 Android 中,Fragment 与 Activity 之间的通信可以通过接口实现。具体步骤如下:
1. 在 Activity 中定义一个接口,用于发送数据给 Fragment。
```java
public interface DataListener {
void sendData(String data);
}
```
2. 在 Activity 中实现该接口,并在需要的时候调用 Fragment 的方法,将数据传递给它。
```java
public class MainActivity extends AppCompatActivity implements DataListener {
private Fragment mFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFragment = new MyFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, mFragment).commit();
}
@Override
public void sendData(String data) {
((MyFragment) mFragment).updateData(data);
}
}
```
3. 在 Fragment 中定义一个接口,用于发送数据给 Activity。
```java
public interface DataListener {
void sendData(String data);
}
```
4. 在 Fragment 中实现该接口,并在需要的时候调用 Activity 的方法,将数据传递给它。
```java
public class MyFragment extends Fragment {
private DataListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof DataListener) {
mListener = (DataListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement DataListener");
}
}
public void updateData(String data) {
// 更新数据
}
public void sendDataToActivity(String data) {
mListener.sendData(data);
}
}
```
这样,就可以实现 Fragment 与 Activity 之间的数据传递了。
阅读全文