本文将介绍给ListView添加点击事件的三种方式:
1、第一种方式。在BaseAdapter的基础上添加点击事件
personLV.setOnItemClickListener(new MyOnItemClickListener());
private class MyOnItemClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Person p = (Person) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), p.getName(), Toast.LENGTH_SHORT).show();
}
}
2、第二种方式。在SimpleAdapter的基础上添加点击事件
personLV.setOnItemClickListener(new MyOnItemClickListener());
private class MyOnItemClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Map<String,Object> map = (Map<String, Object>) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "我的月薪是:"+ map.get("balance"), Toast.LENGTH_SHORT).show();
}
}
3、第三种方式。在SimpleCursorAdapter的基础上添加点击事件
personLV.setOnItemClickListener(new MyOnItemClickListener());
private class MyOnItemClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Cursor c = (Cursor) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), c.getString(1) + "是我们的女神", Toast.LENGTH_SHORT).show();
}
}
小结:通过以上三种给ListView添加点击事件的方式,我们可以看到。他们最大的差别就在于parent.getItemAtPosition(position)的返回值
是不一样的。