BaseAdapter:将hasStableIds()设置为false?

时间:2012-03-29 05:58:19

标签: android android-listview

我有ListView使用BaseAdapter的子类。适配器使用项目索引(位置)作为ID,因此ID不稳定(基础数据上的一个操作在两个数据项之间交换)。

我是否需要在我的适配器hasStableIds()中覆盖到return false

查看此处的BaseAdapter建议

  

false是默认的

http://www.netmite.com/android/mydroid/frameworks/base/core/java/android/widget/BaseAdapter.java

// Is this required? Isn't this the default?
@Override
public final boolean hasStableIds() {
    return false;
}

@Override
public final long getItemId(int position) {
    return position;
}

1 个答案:

答案 0 :(得分:4)

如果您想要默认行为,则不需要覆盖hasStableIds(),因为它是Adapter接口的方法,BaseAdapter通过ListAdapter和{{3}实现因此必须提供该默认实现。

但是你需要覆盖getItemId(int position),因为它是BaseAdapter类的抽象方法。