在android开发中替换SimpleAdapter以提高代码质量

时间:2014-10-09 17:55:25

标签: java android arraylist

目前,我使用HashMap<String, String>SimpleAdapter对象在我的ListView中显示用户数据,但现在我想将HashMap<String, String>替换为{ {1}}包含真实用户对象。

这是我的代码:

ArrayList<User>();

[...]

HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_USERNAME, c.getString(TAG_USERNAME));
                map.put(TAG_FIRSTNAME, c.getString(TAG_FIRSTNAME));
                map.put(TAG_LASTNAME, c.getString(TAG_LASTNAME));
                map.put(TAG_ADDRESS, c.getString(TAG_ADDRESS));
                usersList.add(map);

如何将ListAdapter adapter = new SimpleAdapter(this, usersList, R.layout.single_user, new String[] { TAG_USERNAME, TAG_FIRSTNAME, TAG_LASTNAME, TAG_ADDRESS }, new int[] { R.id.textViewUsername, R.id.textViewFirstName, R.id.textViewLastName, R.id.textViewAddress }); 替换为HashMap?是否有专门的课程用于此目的?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

最简单的方法是覆盖User类中的toString,以便返回要显示的信息,并使用ArrayAdapter<User>。或者你可以拥有CustomAdapter,它扩展BaseAdapter并实现其抽象方法。特别是你有getCount方法,它返回数据集所包含的元素数,getItem(int position)返回数据集对象的位置,getView(int, View, ViewGroup),你必须使用充气和自定义您的视图