在Fragment中使用ListView的时候,需要使用适配器,在调用SimpleAdapter的时候,传递的参数需要注意。首先看SimpleAdapter的函数定义
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
参数:
1,context:上下文。
2,data:基于Map的list。Data里边的每一项都和 ListView里边的每一项对应。Data里边的每一项都是一个Map类型,这个Map类里边包含了ListView每一行需要的数据。
3,resource :就是一个布局layout,可引用系统提供的,也可以自定义。
4,from:这是个名字数组,每个名字是为了在 ArrayList数组的每一个item索引Map<String,Object>的Object用的。即 map 中得key值
5,to:里面是一个TextView数组。这些 TextView是以id的形式来表示的。例如:Android.R.id.text1,这个text1在layout当中是可以索引的。
一般上下文context使用this指针,但是在Fragment中会报错,需要使用如下的方式进行调用。
SimpleAdapter listItemAdapter=new SimpleAdapter(
getActivity(), //这里要使用此,这样才不会报错。
listItem,
R.layout.fr_events_grid,
new String[]{"ItemTitle","ItemMessage","ItemImage"},
new int[]{R.id.fr_events_list_empty_view_title,R.id.fr_events_list_empty_view_message,R.id.fr_events_list_empty_view_image_view}
);
listView.setAdapter(listItemAdapter);