2013-05-03 6 views
24

Der Text auf meinen Spinner ist weiß, und ich habe keine Ahnung warum.Text auf Spinner ist weiß auf weißem Hintergrund

enter image description here

Das ist mein xml, nichts Besonderes

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

Und mein Code

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); 

Was könnte der Grund sein, dass mein Text in weiß dargestellt wird?

EDIT: Ich habe den Grund gefunden, ich ersetzt den mContext-Parameter, der in meinem onCreate festgelegt wurde.

mContext = getApplicationContext(); 

Jetzt benutze ich d

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

und es funktioniert.

+2

Ugh, ich hatte das gleiche Problem, und es war, weil jemand 'ArrayAdapter.createFromResource hatte (\t \t \t this.getActivity(). GetApplicationContext(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) 'statt' ArrayAdapter.createFromResource (\t \t \t this.getActivity(), \t \t \t R.array.security_questions, \t \t \t android.R.layout.simple_spinner_item) ' Die getApplicationContext() hat uns definitiv auch geschraubt, die Anwendung muss ein anderes Thema als die Aktivität haben? – Jeff

+0

Vielen Dank! Nach langer Suche habe ich deinen Beitrag gefunden und könnte mein Problem lösen. – Antiohia

Antwort

84

Ich habe das gleiche Problem und habe die Antwort gefunden. Sie brauchen nicht Anwendungskontext verwenden, sondern nur getActivity() verwenden (wenn Sie in Fragmente sind) oder dieser (wenn Sie in Tätigkeit sind), wird es funktionieren

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

Ich benutze einen 'SimpleCursorAdapter', aber das behebt mein Problem nicht. Irgendeine Idee? – AdamMc331

+0

genial Lösung –

+0

@Le Hung du bist richtig, wenn wir dies anstelle von getApplication Kontext verwenden sieht es wirklich nett aus. Aber wenn wir getApplicationContext verwenden, sehen die Dinge mit einem Vi-eared aus. Danke, Mann. –

1

Vielleicht haben Sie ein weißes android:textColor="@android:color/white" Attribut in Ihrem simple_spinner_item.xml im Layout Ordner Ihres Projekts.

Verwenden Sie besser ein benutzerdefiniertes Drehfeld mit einem guten android:textColor="@android:color/COLOR_YOU_WANT_TO_USE" Attribut.

+1

das simple_spinner_item kommt von Android, nicht vom Projekt ... Ich bin mir nicht sicher, dass das editierbar ist? – Jeff

1

ich es wegen meiner Anwendung Thema war auch gleiches Problem hatte .

android.R.layout.simple_spinner_item 

mit

android.R.layout.simple_list_item_1 

in meinem ArrayAdapter, die ich die

durch Ersetzen gelöst. Ich hoffe, das Ihr Problem lösen kann

1

ich es von ändern

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

zu neuen ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

es fixiert ist, obwohl ich will nicht "die"

9

I gelöst verwenden Dieses Problem unter Verwendung

getBaseContext() 

anstelle von

getApplicationContext() 
+0

getBaseContext() löse mein Problem –

+0

ja ich habe ArrayAdapter innerhalb von AsyncTask extended class..and das gleiche Problem ... getBaseContext() funktioniert für mich .. –

+0

Das löste mein Problem –

Verwandte Themen