android的ListView设置item的点击事件问题
1个回答
展开全部
你这个写的不对吧,按照第二个要求,每条记录要显示姓名和年龄的话,就不能用ArrayAdapter了,ArrayAdapter不支持复杂的子项显示。
你这个应该用SimpleAdapter,并且要自定义listView每条记录的布局文件。
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("name", "zhangsan");
map.put("age", 20);
list.add(map);
SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.user,
//map中的键
new String[]{"name","age"},
//映射的布局文件中的控件id
new int[]{R.id.name,R.id.age}){
@Override
//重写布局文件,设置每条记录的内容。将list的内容映射到对应的控件中
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView nameText = (TextView) view.findViewById(R.id.name);
TextView ageText = (TextView) view.findViewById(R.id.age);
nameText.setText(list.get(position).get("name")+"");
ageText.setText(list.get(position).get("age")+"");
return view;
}
};
R.layout.user的布局文件中就简单的两个textview,id分别是name和age就行。
然后第三个问题,通过list.get(position).get("name")和list.get(position).get("age")分别获得相应的名字和年龄
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询