目前,我使用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
?是否有专门的课程用于此目的?
非常感谢任何帮助。
答案 0 :(得分:0)
最简单的方法是覆盖User类中的toString
,以便返回要显示的信息,并使用ArrayAdapter<User>
。或者你可以拥有CustomAdapter
,它扩展BaseAdapter
并实现其抽象方法。特别是你有getCount
方法,它返回数据集所包含的元素数,getItem(int position)
返回数据集对象的位置,getView(int, View, ViewGroup)
,你必须使用充气和自定义您的视图