2012-03-29 112 views
5

我有一个ListView使用BaseAdapter的子类。适配器使用项目索引(位置)作为ID,因此ID不稳定(底层数据的其中一个操作是在两个数据项之间交换)。BaseAdapter:将hasStableIds()设置为false?

我是否需要在我的适配器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; 
} 

回答

4

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

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

+1

getItemId应该返回什么? – 2014-03-22 19:40:38

相关问题