Autore Topic: Colore item degli spinner dinamici è differente dagli statici, perchè?  (Letto 328 volte)

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Scusate se l'oggetto non è molto chiaro ma non so come spiegarlo meglio in una sola riga.

In sostanza nel mio layout (xml) ho messo 3 spinner affiancati:
il primo per selezionare il tipo di grafico da utilizzare, le voci sono statiche da values/strings.xml (<string-array name="grafici">....)
il secondo per selezionare il mese da visualizzare, le voci sono statiche da values/strings.xml (<string-array name="mesi">....)
il terzo per selezionare l'anno da visualizzare, le voci sono create dinamicamente perchè dipendenti dai dati presenti nel db.

in values/styles.xml non ho messo nulla, solo quello che ha messo android studio di default (ovvero qualche commento senza dichiarazioni specifiche)

Questo il codice che aggiunge la lista degli anni:
Codice: [Seleziona]
List<String> session_years = new ArrayList<String>();
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner_graph_year);
int annostart_sessions = statistiche.annostart(1, anno); //primo anno
       while (annostart_sessions<=calendar.get(Calendar.YEAR)) {
            session_years.add(String.valueOf(annostart_sessions));
            annostart_sessions++;
        }
spinner2.setAdapter(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_item,session_years));

Quando visualizzo la schermata i primi due spinner hanno testo nero (e il dropdown sfondo bianco) mentre l'ultimo, quello incriminato, testo bianco che risulta invisibile sulla tendina dropdown essendo anch'essa bianca; inoltre mi sembra anche che abbia dimensione differente.

Allego lo screenshot degli spinner.
Se la mia risposta ti è utile, per favore un thanks!

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Colore item degli spinner dinamici è differente dagli statici, perchè?
« Risposta #1 il: 11 Marzo 2015, 13:57:24 CET »
0
Mi sono ricordato che ho un altro layout con uno spinner popolato dal db ed è visualizzato come dovrebbe essere (testo nero e dropdown con sfondo bianco) e sono andato a controllare.

Prima di tutto quello spinner nel layout xml viene inizializzato con un array presente in strings.xml (se l'utente non ha mai inserito dati specifici sono sufficienti quelli di base statici) e nella oncreate viene popolato con dati dal db se presenti, usando un array di stringhe ( String[] ).

Allora ho provato a impostare la stessa procedura (array dummy in strings.xml, popolamento da db con String[] invece che con lista) ma l'unica cosa che è stata risolta è solo la dimensione del carattere degli elementi e non il colore che rimane bianco!
Se la mia risposta ti è utile, per favore un thanks!

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Colore item degli spinner dinamici è differente dagli statici, perchè?
« Risposta #2 il: 13 Marzo 2015, 14:44:04 CET »
0
Ma proprio nessuno ha idea del perchè?
Qualche indizio/suggerimento?
Se la mia risposta ti è utile, per favore un thanks!

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Colore item degli spinner dinamici è differente dagli statici, perchè?
« Risposta #3 il: 16 Marzo 2015, 12:18:41 CET »
0
Risolto!

Usando getApplicationContext() viene applicato uno stile differente rispetto all'activity, passando this (nel frammento di codice postato) tutto è corretto.
Quindi in onCreate() dell'activity ho dovuto impostare una variabile globale Context in modo da poterla utilizzare all'interno dei vari listener quando cambiano gli elementi dello spinner.

Ora se qualcuno vuole illuminarmi a riguardo...
Se la mia risposta ti è utile, per favore un thanks!