在使用listview的时候经常会重写getItem()和getItemId()这两个方法,有的博客说getitem会在getview中使用,这是不对的,我们可能会疑惑这俩方法有什么用,有时候我们会直接ruturn null好像也没什么影响。其实,这俩方法不是在baseadapter类中被调用的,而是在Adapterview中被调用的。方法如下:
public Object getItemAtPosition(int position) { T adapter = getAdapter(); return (adapter == null || position < 0) ? null : adapter.getItem(position); }
而getItemAtPosition(position) 是在setOnItemClickListener、setOnItemLongClickListener、setOnItemSelectedListener的点击选择处理事件中方便地调用来获取当前行数据的。所以最好写为return this.datalist.get(position);
getItemid不同于getItem的是,一些方法(如onclicklistener的onclick方法)有id这个参数,而这个id参数就是取决于
getItemId()这个返回值的。