2012-03-29 15 views
5

Ho un ListView che utilizza una sottoclasse di BaseAdapter. L'adattatore utilizza gli indici degli articoli (posizioni) come ID e quindi gli ID non sono stabili (una delle operazioni sui dati sottostanti si scambia tra due elementi di dati).BaseAdapter: imposta hasStableIds() su false?

Devo eseguire l'override nell'adattatore hasStableIds() a return false?

Guardando il BaseAdapter qui suggeriscono

che falso è il default

.

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

risposta

4

No non è necessario eseguire l'override hasStableIds() se si desidera che il comportamento predefinito perché il suo metodo di Adapter interfaccia che il BaseAdapter implementa attraverso ListAdapter e SpinnerAdapter e quindi deve fornire un'implementazione di default di quella.

Tuttavia è necessario eseguire l'override di getItemId(int position) perché è un metodo astratto di classe BaseAdapter.

+1

cosa dovresti restituire per getItemId? –

Problemi correlati