ListView之SimpleAdapter
SimpleAdapter的构造函数是:
public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
参数context:上下文,比如this。关联SimpleAdapter运行的视图上下文
参数data:Map列表,列表要显示的数据,这部分需要自己实现,如例子中的getData(),类型要与上面的一致,每条项目要与from中指定条目一致
参数resource:ListView单项布局文件的Id,这个布局就是你自定义的布局了,你想显示什么样子的布局都在这个布局中。这个布局中必须包括了to中定义的控件id
参数 from:一个被添加到Map上关联每一个项目列名称的列表,数组里面是列名称
参数 to:是一个int数组,数组里面的id是自定义布局中各个控件的id,需要与上面的from对应。
下面是相关的代码片段,虽然不是专为做讲解用的例子,但SimpleAdapter的用法是完整的。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.recall); SysApplication.getInstance().addActivity(this); listView = (ListView) this.findViewById(R.id.listview); listView.setAdapter(getAdapter()); } protected SimpleAdapter getAdapter() { List<User> users = getUsers(); List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>(); for (User u : users) { HashMap<String, String> temp = new HashMap<String, String>(); temp.put("name", u.getUsers_Name()); data.add(temp); } SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data, R.layout.recall_item, new String[] { "name" }, new int[] { R.id.name }); Log.i("info", "填充数据完成"); return adapter; }
一下是对应的效果图:(红色字体为ListView中显示)