Android baseAdapter中getItemId中的IndexOutOfBoundsException

时间:2014-03-11 22:21:09

标签: java android android-arrayadapter baseadapter

我有一个自定义基本适配器来处理我的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月至少)。

1 个答案:

答案 0 :(得分:1)

检查你的位置是否小于数组的大小,如果是,则返回-1。

@Override
public long getItemId(int position) {
    if(position < custom.size()){
        return custom.get(position).getID();
    }
    return -1;
}