android如何向Fragment传递一个List<HashMap<String, String>>,并能在页面用显示
时间: 2024-05-08 14:22:09 浏览: 256
要向Fragment传递一个List<HashMap<String, String>>,可以使用Bundle对象将数据打包,然后通过setArguments()方法将Bundle对象传递给Fragment。接下来在Fragment中通过getArguments()方法获取传递的Bundle对象,从而获取List<HashMap<String, String>>数据。
下面是示例代码:
在Activity中:
```java
List<HashMap<String, String>> dataList = new ArrayList<>();
// 添加数据到dataList
Bundle bundle = new Bundle();
bundle.putSerializable("dataList", (Serializable) dataList);
MyFragment myFragment = new MyFragment();
myFragment.setArguments(bundle);
```
在Fragment中:
```java
List<HashMap<String, String>> dataList = new ArrayList<>();
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
if (bundle != null) {
dataList = (List<HashMap<String, String>>) bundle.getSerializable("dataList");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
// 在页面中显示dataList数据
ListView listView = view.findViewById(R.id.list_view);
SimpleAdapter adapter = new SimpleAdapter(getActivity(), dataList, R.layout.list_item_layout,
new String[]{"title", "content"}, new int[]{R.id.title_tv, R.id.content_tv});
listView.setAdapter(adapter);
return view;
}
```
在上述示例代码中,我们使用Bundle对象将List<HashMap<String, String>>数据打包,然后通过setArguments()方法将Bundle对象传递给Fragment。在Fragment中,我们通过getArguments()方法获取传递的Bundle对象,从而获取List<HashMap<String, String>>数据,并在页面中显示数据。这里我们使用了ListView和SimpleAdapter来显示数据,你也可以根据需要使用其他控件和适配器。
阅读全文