本人是在使用Listview时,由于需要自定义ListView的Item,因此需要自己写一个Adapter,使用到了BaseAdapter。对BaseAdapter中的getItem()以及getItemId()略感疑惑,因此从网上查找资料得出自己的见解:
参考了这篇博文:http://www.cnblogs.com/qzxia/archive/2010/10/25/1860602.html
getItem并不是由Android系统主动进行调用,而是提供了一个接口方便我们在编写item的onClick方法时方便数据的传递。
public Object getItem(int position)的用处在于重写onItemLongClick(AdapterView<?> parent, View view, int position, long id)的时候,可以通过AdapterView的getItemAtPosition(position)方法获取Adapter里面getItem返回的item数据,从而简化了开发过程。
但是上面的博文还有遗漏的地方,public long getItemId(int position)返回的id不仅仅是给我们提供了getSelectedId()方法调用,而且当我们重写了getItemId(int position)后,所返回的值实际上也是onItemLongClick(AdapterView<?> parent, View view, int position, long id)里面的id的值,这里的id起到的作用也许是一个自定义item的Id的作用,并不一定所有的item都能保存一个整数的id,因此特意再加入getItemId方法,然后可以在onClick方法中获取到当前点击到的item的id,从而完成更多方便的操作。