BaseAdapter:将hasStableIds()设置为false?

use*_*880 5 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;
}
Run Code Online (Sandbox Code Playgroud)

vKa*_*yap 4

hasStableIds()不,如果您想要默认行为,则无需重写,因为它是Adapter接口的方法,BaseAdapter通过ListAdapterSpinnerAdapter实现,因此必须提供该方法的默认实现。

但是您确实需要重写,getItemId(int position)因为它是 BaseAdapter 类的抽象方法。