安卓 碎片之间的传值 请给出代码样例
时间: 2024-05-15 17:17:22 浏览: 8
以下是一个安卓应用程序中,使用Bundle在碎片之间传递数据的代码样例:
1. 在源碎片中创建Bundle对象,将需要传递的数据添加到Bundle中:
```java
Bundle bundle = new Bundle(); // 创建Bundle对象
bundle.putString("key", "value"); // 添加需要传递的数据
```
2. 使用FragmentManager获取目标碎片,并将Bundle对象传递给目标碎片:
```java
TargetFragment fragment = new TargetFragment(); // 创建目标碎片
fragment.setArguments(bundle); // 将Bundle对象传递给目标碎片
FragmentManager fragmentManager = getFragmentManager(); // 获取FragmentManager对象
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); // 开始FragmentTransaction事务
fragmentTransaction.replace(R.id.fragment_container, fragment); // 将目标碎片替换源碎片,R.id.fragment_container是容纳Fragment的View组件的ID
fragmentTransaction.addToBackStack(null); // 将源碎片添加到回退栈
fragmentTransaction.commit(); // 提交事务
```
3. 在目标碎片中获取Bundle对象,以获得传递的数据:
```java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// 获取传递的Bundle对象
Bundle bundle = getArguments();
String value = bundle.getString("key"); // 获取传递的数据
// 省略其他代码
}
```