我有一个ListView
使用的子类BaseAdapter
。适配器使用项目索引(位置)作为 id,因此 id 不稳定(底层数据的操作之一是在两个数据项之间交换)。
我需要在我的适配器中覆盖吗hasStableIds()
to return false
?
看着BaseAdapter
这里建议
false 是默认值
.
http://www.netmite.com/android/mydroid/frameworks/base/core/java/android/widget/BaseAdapter.java 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;
}
不,你不需要覆盖hasStableIds()
如果您想要默认行为,因为它是一种方法Adapter http://developer.android.com/reference/android/widget/Adapter.html#hasStableIds%28%29接口其中基础适配器 http://developer.android.com/reference/android/widget/BaseAdapter.html#hasStableIds%28%29实施通过列表适配器 http://developer.android.com/reference/android/widget/ListAdapter.html and 旋转适配器 http://developer.android.com/reference/android/widget/SpinnerAdapter.html因此必须提供它的默认实现。
但是你确实需要重写getItemId(int position)
因为它是 BaseAdapter 类的抽象方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)