2013-05-03 31 views
24

Il testo sui miei filatori è bianco e non ho idea del perché.Il testo sullo spinner è bianco su sfondo bianco

enter image description here

Questo è il mio xml, niente di speciale

<Spinner 
    android:id="@+id/spinner_date" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

E il mio codice

dateSpinner = (Spinner) findViewById(R.id.spinner_date); 
selectedDate = calendar.getTime(); 
List<String> list = new ArrayList<String>(); 
list.add(formatter.format(selectedDate)); 
dateAdapter = new ArrayAdapter<String>(mContext, 
      android.R.layout.simple_spinner_item, list); 
dateSpinner.setAdapter(dateAdapter); 

Quale potrebbe essere la ragione per cui il mio testo viene visualizzato in bianco?

MODIFICA: Ho trovato il motivo, ho sostituito il parametro mContext impostato nel mio onCreate.

mContext = getApplicationContext(); 

Ora uso d

ateAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, list); 

e funziona.

+2

Ugh, ho avuto lo stesso problema, ed era perché qualcuno aveva 'ArrayAdapter.createFromResource (\t \t \t this.getActivity(). GetApplicationContext(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) 'invece di' ArrayAdapter.createFromResource (\t \t \t this.getActivity(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) ' Il getApplicationContext() ci ha sicuramente rovinato, l'applicazione deve avere un tema diverso rispetto all'attività? – Jeff

+0

Grazie mille! Dopo una lunga ricerca ho trovato il tuo post e ho potuto risolvere il mio problema. – Antiohia

risposta

84

Ho lo stesso problema e ho trovato la risposta. Tu non utilizzare contesto di applicazione, invece, basta usare getActivity() (se si è in frammento) o questo (se si è in attività), che funzionerà

dateAdapter = new ArrayAdapter<String>(**this**, 
     android.R.layout.simple_spinner_item, list); 
+0

Sto usando un 'SimpleCursorAdapter' ma questo non ha risolto il mio problema. Qualche idea? – AdamMc331

+0

soluzione impressionante –

+0

@Le Hung hai ragione quando usiamo questo invece del contesto getApplication sembra davvero bello. Ma quando usiamo getApplicationContext, le cose sembrano inaspettate. Grazie uomo. –

1

Forse hai un attributo bianco android:textColor="@android:color/white" nel vostro simple_spinner_item.xml nella cartella dilayout del progetto.

Utilizzare preferibilmente un layout di oggetto personalizzato con un buon attributo android:textColor="@android:color/COLOR_YOU_WANT_TO_USE".

+1

the simple_spinner_item proviene da Android, non dal progetto ... Non sono sicuro che sia modificabile? – Jeff

1

Ho anche avuto lo stesso problema è stato a causa del mio tema dell'applicazione . Che ho risolto sostituendo il

android.R.layout.simple_spinner_item 

con

android.R.layout.simple_list_item_1 

nel mio ArrayAdapter. Spero che questo possa risolvere il tuo problema

1

lo cambio da

new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, some_list); 

per nuova ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

è fissato, anche se non voglio usare "questo"

9

ho risolto questo problema utilizzando

getBaseContext() 

anziché

getApplicationContext() 
+0

getBaseContext() risolve il mio problema –

+0

sì Ho usato ArrayAdapter all'interno della classe estesa AsyncTask..e ho lo stesso problema ... getBaseContext() funziona per me .. –

+0

Questo ha risolto il mio problema –

Problemi correlati