我有一个ListView
使用BaseAdapter
的子类。适配器将项目索引(位置)用作ID,因此ID不稳定(对基础数据的操作之一是在两个数据项目之间交换)。
我是否需要在适配器中将hasStableIds()
覆盖为return false
?
查看这里的BaseAdapter
建议
。
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通过BaseAdapter和ListAdapter实现的SpinnerAdapter接口(interface)方法,因此必须提供该方法的默认实现。
但是,您确实需要重写getItemId(int position)
,因为它是BaseAdapter类的抽象方法。
关于android - BaseAdapter : set hasStableIds() to false?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9919822/