CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 4 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: frank92samsung con ben 25 Thanks ricevuti negli ultimi sette giorni
Utente del mese: JuJu75 con ben 76 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

[Facile] ListView con indice alfabetico

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    LG G6

    Ringraziamenti
    405
    Ringraziato 1,443 volte in 625 Posts
    Predefinito

    [Facile] ListView con indice alfabetico

    Livello di difficoltà: facile
    Versione SDK utilizzata: 8

    Vedendo l'applicazione Persone di Google ho voluto provare ad implementare l'indice alfabetico che si trova sulla sinistra quando viene scrollata rapidamente la ListView e sono rimasto sbalordito dall'incredibile semplicità con la quale si realizza questo meccanismo.

    Una volta popolata la ListView ci basterà costruire il nostro custom adapter ed implementare l'interfaccia SectionIndexer e facendo l'Override dei suoi metodi (getSections, getPositionForSection e getSectionForPosition). Quindi inserire nel costruttore dell'adapter quanto segue



    Vediamo ora come funzionano i metodi dell'interfaccia SectionIndexer.

    Il metodo getPositionForSection(int section) ritorna la prima posizione della sezione.
    Il metodo getSectionForPosition(int position) ritorna l'indice della corrispettiva sezione all'interno dell'array in quella specifica posizione.
    Il metodo getSections() ritorna un'array di oggetti che rappresentano le sezioni della lista.

    "Configuriamo" i metodi sopra esposti come segue



    Ho dimenticato di dire che affinchè tutto ciò funzioni c'è bisogno del fastScroll abilitato quindi o inserite nel codice XML della ListView


    oppure da codice Java



    Se avete seguito tutti i passaggi correttamente runnando l'applicazione e facendo un fast scroll dovreste avere qualcosa come questo



    Il codice è stato testato da me personalmente su KitKat e Gingerbread ed il tutto funziona senza alcun tipo di problema.

    Spero che questo tutorial sia stato d'aiuto a qualcuno. Ciao!


    Google Play Developer: SimoneDev | Google Plus: +SimoneDev

  2.  
  3. #2
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    LG G6

    Ringraziamenti
    405
    Ringraziato 1,443 volte in 625 Posts
    Predefinito

    Riservato per future evenienze.


    Google Play Developer: SimoneDev | Google Plus: +SimoneDev

  4. Il seguente Utente ha ringraziato Crotan per il post:

    Fabriziocolazzo (27-09-15)

  5. #3
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    scusami, nel mio caso come dovrei fare?
    codice:
    class Ingredienti {
        private String text1;
    
        public String getText1(){
            return this.text1;
        }
        public void setText1(String text1){
    
            this.text1= text1;
        }
    
    
        public Ingredienti(String text1) {
            this.text1 = text1;
        }
    
    }
    
    
    public class Adapter_lista_nuovo_ingrediente extends BaseAdapter {
        private ArrayList mapData;
        Context context;
        int layoutResourceId;
    
        Holder2 holder2;
    
        public Adapter_lista_nuovo_ingrediente(Context context, int layoutResourceId, Map<Integer, Ingredienti> arList) {
    
            this.layoutResourceId = layoutResourceId;
            this.context = context;
    
            mapData = new ArrayList();
            mapData.addAll(arList.entrySet());
            
        }
    
        @Override
        public int getCount() {
            return mapData.size();
        }
    
    
        @Override
        public Map.Entry<Integer, Ingredienti> getItem(int position) {
            return (Map.Entry) mapData.get(position);
        }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy