Cambia font listView contenuta in un arrayAdapter

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Cambia font listView contenuta in un arrayAdapter

    Lo farebbe lui se non avessi fatto l'override del metodo. Ma attualmente nel getView imposti la stringa "random text" a tutte le righe
  • Re: Cambia font listView contenuta in un arrayAdapter

    Lo farebbe lui se non avessi fatto l'override del metodo
    Cioè dovrei togliere @Override dal metodo getView() ?
    Ma attualmente nel getView imposti la stringa "random text" a tutte le righe
    Ho tolto la riga di codice in setto il testo e @orerride ma compare la textview di default "large text" in tutta la lista.
  • Re: Cambia font listView contenuta in un arrayAdapter

    No, era per dire che il comportamento di default è quello di andare a prendere dall'array un elemento e metterlo nella lista. Avendo fatto l'override del metodo devi occuparti tu di prendere l'i-esimo elemento e riempire la relativa riga
  • Re: Cambia font listView contenuta in un arrayAdapter

    Mmm quindi dovrei implementare anche gli altri metodi customAdapter come quello relativo alla posizione , ecc?? Mi sono perso.... è abbastanza tedioso questo customAdapter vero ?
  • Re: Cambia font listView contenuta in un arrayAdapter

    No, devi fare tutto nel getView. Il parametro "position" (il primo del metodo getView) ti dice quale riga devi restituire (le righe sono numerate a partire da zero). Sapendo questo e avendo a disposizione il metodo "getItem" (che richiede come parametro un indice e restituisce l'i-esimo elemento dell'array "titoli", che avevi passato al costruttore) puoi facilmente riempire la riga con il giusto contenuto. E' la parte più facile dell'implementazione di un adapter..
  • Re: Cambia font listView contenuta in un arrayAdapter

    Ho capito più o meno... Però io nel costruttore ho il parametro List object. Devo creare una classe apposita (che utilizzerò per particolarizzare la list) all'interno della quale inserire i dati? O la soluzione è molto più semplice?

    Ho capito solo che devo fare una cosa del genere
    ??? = getItem(position);
    testo.setText(???)

    Quello che non ho capito e il tipo di dato da utilizzare al posto dei ???
  • Re: Cambia font listView contenuta in un arrayAdapter

    Il tipo di dato è lo stesso dell'array. La classe ArrayAdapter è infatti una classe parametrica, per cui il tipo di dato del parametro è lo stesso restituito dal metodo getItem
  • Re: Cambia font listView contenuta in un arrayAdapter

     @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
    
            if (convertView==null)
            {
                convertView=LayoutInflater.from(getContext()).inflate(R.layout.layout_riga, null);
            }
            
    
            // ottenere i riferimenti alle singole sub-view che compongono la riga
            testo = (TextView) convertView.findViewById(R.id.testoRiga);
    
            // impostare il font desiderato nelle sub-view
    
            font = Typeface.createFromAsset(getContext().getAssets(), "Quattrocento.ttf");
            testo.setTypeface(font);
    
            // riempire le sub-view con i dati di interesse
    
            String titolo = getItem(position).toString();
            testo.setText(titolo);
    
    
    
            // restituire la view corrispondente alla riga
            return convertView;
    
    
        }

    Funziona finalmente...avevi proprio ragione tu... era la parte più semplice...ma io come sempre mi complico sempre la vita. Grazie infinite per la mano che mi hai dato, senza di te non ci sarei riuscito. Grazie
Devi accedere o registrarti per scrivere nel forum
22 risposte