我有一个自定义基本适配器来处理我的customObjects的ArrayList。当用户输入我的listView并且它似乎导致我的IndexOutOfBoundsException时,我的数据集在后台发生变化的可能性很小。我现在正在做:
@Override
public long getItemId(int position) {
return custom.get(position).getID();
}
我应该坚持从类似ArrayAdapter返回位置吗?
/**
* {@inheritDoc}
*/
public long getItemId(int position) {
return position;
}
我可以抓住这个错误,但我不知道该怎么办。我需要返回一些东西,但我害怕返回-1或0之类的东西。
在这个问题中:What is the intent of the methods getItem and getItemId in the Android class BaseAdapter?
人们说ArrayAdapter返回-1,但事实并非如此(截至2014年3月至少)。
答案 0 :(得分:1)
检查你的位置是否小于数组的大小,如果是,则返回-1。
@Override
public long getItemId(int position) {
if(position < custom.size()){
return custom.get(position).getID();
}
return -1;
}