2012-03-29 11 views
5

Tengo un ListView que utiliza una subclase de BaseAdapter. El adaptador usa índices de ítems (posiciones) como ids y, por lo tanto, los identificadores no son estables (una de las operaciones en los datos subyacentes es el intercambio entre dos ítems de datos).BaseAdapter: establece hasStableIds() en falso?

¿Debo anular en mi adaptador hasStableIds() a return false?

Mirando el BaseAdapter aquí sugieren

ese falso es el valor predeterminado

.

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; 
} 

Respuesta

4

No, no es necesario reemplazar hasStableIds() si desea que el comportamiento por defecto porque es un método de Adapter interfaz que el BaseAdapter implementa a través ListAdapter y SpinnerAdapter y por lo tanto tiene que proporcionar una implementación por defecto de ese.

Sin embargo, debe anular getItemId(int position) porque es un método abstracto de la clase BaseAdapter.

+1

¿qué debería devolver por getItemId? –

Cuestiones relacionadas