Autore Topic: Colorare gli elementi della lista in base al contenuto di ogni riga  (Letto 555 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
0
Ciao a tutti,
come posso colorare il testo all'interno delle TextView (che sono righe di una lista creata tramite simpleCursorAdapter) in base al contenuto di ogni riga?

es lista:
mario   --> in rosso
luca   --> in giallo
mario   --> in rosso

Il codice seguente è funzionante, ma il mio problema è che il testo delle varie TextView viene colorato solo dopo il click di un elemento della lista.
Invece quello che vorrei ottenere è che il testo venga colorato appena visualizzo la lista.
Codice (Java): [Seleziona]
lista.setOnItemClickListener(new OnItemClickListener() {       
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       
        TextView t = (TextView)view.findViewById(R.id.miatextview);
        String a = t.getText().toString();
       
        if(a.equals("mario")){
            t.setTextColor(Color.RED);
        }else if(a.equals("luca")){
            t.setTextColor(Color.YELLOW);
        }else{
            t.setTextColor(Color.GREEN);
        }
});

come potrei risolvere?

grazie in anticipo!
« Ultima modifica: 08 Ottobre 2012, 21:49:21 CEST da MrKrabs »

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Colorare gli elementi della lista in base al contenuto di ogni riga
« Risposta #1 il: 09 Ottobre 2012, 21:47:13 CEST »
0
Posto la soluzione al mio problema nel caso in cui, in futuro, servisse a qualcuno

Codice (Java): [Seleziona]
adapter=new SimpleCursorAdapter(
                        this,
                        R.layout.miolayout,
                        cur,
                        new String[]{...................}, new int[]{..................})
        {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                View  view = super.getView(position, convertView, parent);
               
                TextView t = (TextView)view.findViewById(R.id.tv);
                String m_str = t.getText().toString();
                if(m_str.equals("")){
                        t.setText("-");
                }
               
                return view;
        }};

In pratica bisogna sovrascrivere il metodo getView()