在android的开发过程中,ListView是我们使用比较多的控件,用来显示一些列表。而fragment是可以很方便地让我们根据实际情况拼接出理想的用户界面,而当某一个fragment中只有一个ListView时,我们就可以让自定义的fragment继承自ListFragment,系统会给我们封装常用的listView的操作。此时当我们想要响应listView中的item的点击事件时,我们很自然在想到添加一个点击事件的监听器,可是不管这个监听器是让自定义的fragment实现,还是用匿名内部类实现,item都不会响应点击事件。这是为什么?
因为当你的fragment继承自ListFragment中,系统已经给你封装的相应的响应事件的方法:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
当你点击ListView的item时,系统会默认调用这个方法。因此,如果你想实现自定义的点击事件的响应,你应该重载这个方法来实现。这可能就是ListFragment与fragment,activity的一些区别。
希望可以对同样是新手的你,有帮助。