2010-11-07 22 views
9

¿Alguien me puede mostrar un ejemplo de cómo usar AlphabetIndexer con un adaptador personalizado que usa un getView? Lo tengo trabajando con un adaptador estándar, pero no tengo ni idea de cómo implementarlo con un adaptador personalizado.AlphabetIndexer con adaptador personalizado

Gracias

+0

Estoy haciendo algo similar AQUÍ http://stackoverflow.com/questions/10224233/alphabetindexer-with-custom-adapter-managed-by-loadermanager – toobsco42

+0

Aquí he creado una aplicación de muestra en Android, que es similar a Iphone Alphabatical Indexador http://mukeshyadav4u.blogspot.in/2012/06/alphabatical-indexer-in-android.html –

Respuesta

7

Hola esto es cómo uso AlphaIndexer

private final class ContactListItemAdapter extends ResourceCursorAdapter 
     implements SectionIndexer { 
    AlphabetIndexer alphaIndexer; 

    public ContactListItemAdapter(Context context, int layout, Cursor c) { 
     super(context, layout, c); 
     alphaIndexer = new AlphabetIndexer(c, NAME_COLUMN_INDEX, 
       " ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      .... 
      a normal getView 
      .... 
    } 

    public int getPositionForSection(int section) { 
     return alphaIndexer.getPositionForSection(section); 
    } 

    public int getSectionForPosition(int position) { 
     return alphaIndexer.getSectionForPosition(position); 
    } 

    public Object[] getSections() { 
     return alphaIndexer.getSections(); 
    } 
} 

NAME_COLUMN_INDEX es el índice de la columna en el esquema de base de datos.

...

Si esto no es lo que necesita, por favor, añadir algo de código de cuáles han de ser la clase de extender y así sucesivamente.

De todos modos espero que esto ayude.

+2

hola, quiero preguntar: ¿qué podría hacer si no obtengo mi artículo de la base de datos – MoHaKa

8

Si estás utilizando un LoaderManager para manejar el cursor del adaptador, tendrá que hacer un pequeño ajuste y anular sus adaptadores método swapCursor:

public Cursor swapCursor(Cursor c) { 
    // Create our indexer 
    if (c != null) { 
     mIndexer = new AlphabetIndexer(c, c.getColumnIndex(Books.TITLE), 
       " ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
    } 
    return super.swapCursor(c); 
} 

Todo lo demás se mantiene igual que @vsm describe.

+0

, por favor, proporcione una demo para implementarlo ??? –

+0

Una demostración para implementar qué? – twaddington

+0

Actualmente quiero implementar AlphabetIndexer y Fast Scroll según la búsqueda alfabética como Lista de contactos en Android. Así que cómo se hace ?? –

Cuestiones relacionadas